Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Заводской номер HDD в 64 bit компьютерах Добавлено: 19.06.12 18:06  

Автор вопроса:  Эдик

Привет всем !
Как в 64 bit компах узнать заводской серийный номер HDD (Ноутбуков) .Старые способы пригодные для 32 bit компах здесь не пригодны.

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 19.06.12 22:18
какие именно способы и почему непригоды?

Ответить

Номер ответа: 2
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #2
Добавлено: 19.06.12 22:27
видимо для работы с устройствами он использовал 32битный драйвер

Ответить

Номер ответа: 3
Автор ответа:
 Эдик



Вопросов: 19
Ответов: 23
 Профиль | | #3 Добавлено: 20.06.12 05:47
Этот способ выдает вот что "2020202020202020202030204b20423846464248"
  1.  
  2. Private Sub Form_Load()
  3. On Error Resume Next
  4. strComputer = "."
  5. Set objWMIService = GetObject("winmgmts:" _
  6.     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  7.  
  8. Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMedia")
  9.  
  10.  For Each objItem In colItems
  11.    ' MsgBox "SnHDD: " & objItem.SerialNumber
  12.     List1.AddItem "SnHDD: " & objItem.SerialNumber
  13.  Next
  14. End Sub



А этот способ выдавал более подробно
http://vbnet.ru/forum/show.aspx?id=115726

Ответить

Номер ответа: 4
Автор ответа:
 Эдик



Вопросов: 19
Ответов: 23
 Профиль | | #4 Добавлено: 20.06.12 05:53
Обычно ползуюсь этим
  1.  
  2. Option Explicit
  3.  
  4. '***************************************************************************************
  5. '*                     Íàïèñàíî: 26.08.2006 (Team HomeWork)                            *
  6. '*                           e-mail: sne_pro@mail.ru                                   *
  7. '***************************************************************************************
  8.  
  9. Private Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
  10. Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
  11. Private Declare Function DeviceIoControl Lib "kernel32.dll" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, ByRef lpInBuffer As Any, ByVal nInBufferSize As Long, ByRef lpOutBuffer As Any, ByVal nOutBufferSize As Long, ByRef lpBytesReturned As Long, ByRef lpOverlapped As Long) As Long
  12. Private Declare Sub RtlZeroMemory Lib "kernel32.dll" (ByVal Destination As Long, ByVal Length As Long)
  13.  
  14. Private Type GETVERSIONOUTPARAMS
  15.  
  16.     bVersion            As Byte     ' Binary driver version.
  17.     bRevision           As Byte     ' Binary driver revision.
  18.     bReserved           As Byte     ' Not used.
  19.     bIDEDeviceMap       As Byte     ' Bit map of IDE devices.
  20.     fCapabilities       As Long     ' Bit mask of driver capabilities.
  21.     dwReserved1         As Long     ' For future use.
  22.     dwReserved2         As Long     ' For future use.
  23.     dwReserved3         As Long     ' For future use.
  24.     dwReserved4         As Long     ' For future use.
  25.  
  26. End Type
  27.  
  28. Private Type IDEREGS
  29.  
  30.     bFeaturesReg        As Byte     ' Used for specifying SMART "commands".
  31.     bSectorCountReg     As Byte     ' IDE sector count register
  32.     bSectorNumberReg    As Byte     ' IDE sector number register
  33.     bCylLowReg          As Byte     ' IDE low order cylinder value
  34.     bCylHighReg         As Byte     ' IDE high order cylinder value
  35.     bDriveHeadReg       As Byte     ' IDE drive/head register
  36.     bCommandReg         As Byte     ' Actual IDE command.
  37.     bReserved           As Byte     ' reserved for future use.  Must be zero.
  38.  
  39. End Type
  40.  
  41. Private Type SENDCMDINPARAMS
  42.     cBufferSize         As Long     ' Buffer size in bytes
  43.     irDriveRegs         As IDEREGS  ' Structure with drive register values.
  44.     bDriveNumber        As Byte     ' Physical drive number to send command to (0,1,2,3).
  45.     bReserved(2)        As Byte     ' Reserved for future expansion.
  46.     dwReserved(3)       As Long     ' For future use.
  47.     bBuffer             As Byte     ' Input buffer.
  48. End Type
  49.  
  50. Private Type DRIVERSTATUS
  51.     bDriverError        As Byte     ' Error code from driver, or 0 if no error.
  52.     bIDEStatus          As Byte     ' Contents of IDE Error register. Only valid when bDriverError is SMART_IDE_ERROR.
  53.     bReserved(1)        As Byte     ' Reserved for future expansion.
  54.     dwReserved(1)       As Long     ' Reserved for future expansion.
  55. End Type
  56.  
  57. Private Type SENDCMDOUTPARAMS
  58.     cBufferSize         As Long     ' Size of bBuffer in bytes
  59.     DRIVERSTATUS        As DRIVERSTATUS ' Driver status structure.
  60.     bBuffer             As String * 512 ' Buffer of arbitrary length in which to store the data read from the drive.
  61. End Type
  62.  
  63. Private Const INVALID_HANDLE_VALUE  As Long = &HFFFFFFFF
  64. Private Const GENERIC_READ          As Long = &H80000000
  65. Private Const GENERIC_WRITE         As Long = &H40000000
  66. Private Const FILE_SHARE_READ       As Long = &H1
  67. Private Const FILE_SHARE_WRITE      As Long = &H2
  68. Private Const OPEN_EXISTING         As Long = 3
  69.  
  70. Private Const DFP_GET_VERSION       As Long = &H74080
  71. Private Const DFP_RECEIVE_DRIVE_DATA As Long = &H7C088
  72.  
  73. Private Const IDE_ATAPI_IDENTIFY    As Long = &HA1     ' Returns ID sector for ATAPI.
  74. Private Const IDE_ATA_IDENTIFY      As Long = &HEC     ' Returns ID sector for ATA.
  75.  
  76. Private Const IDENTIFY_BUFFER_SIZE  As Long = 512&
  77. Private Const SIZE_IDOUTCMD         As Long = &H11 + IDENTIFY_BUFFER_SIZE - 1&
  78.  
  79. ' http://www.wasm.ru/srclist.php?list=6
  80.  
  81. Private Sub Form_Load()
  82.  
  83.     Dim VersParams  As GETVERSIONOUTPARAMS, _
  84.         scip        As SENDCMDINPARAMS, _
  85.         IdOutCmd    As SENDCMDOUTPARAMS, _
  86.         cbRead      As Long, _
  87.         bIDCmd      As Byte
  88.  
  89.     Dim i           As Long, _
  90.         l           As Long
  91.     Dim hDrive      As Long
  92.  
  93.     Do
  94.         Call RtlZeroMemory(VarPtr(IdOutCmd), Len(IdOutCmd))
  95.  
  96.         hDrive = CreateFile("\\.\PhysicalDrive" & CStr(i), GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, OPEN_EXISTING, 0&, 0&)
  97.         If hDrive = INVALID_HANDLE_VALUE Then _
  98.             Exit Do
  99.  
  100.         Call RtlZeroMemory(VarPtr(VersParams), Len(VersParams))
  101.         If Not (DeviceIoControl(hDrive, DFP_GET_VERSION, ByVal 0&, 0&, VersParams, Len(VersParams), cbRead, ByVal 0&) = 0&) Then
  102.  
  103.             If (VersParams.bIDEDeviceMap > 0) Then
  104.  
  105.                 bIDCmd = VersParams.bIDEDeviceMap
  106.                 bIDCmd = bIDCmd \ 2 ^ i
  107.                 bIDCmd = bIDCmd And &H10
  108.  
  109.                 If Not (bIDCmd = 0&) Then _
  110.                     bIDCmd = &HFFFFFFFF
  111.  
  112.                 bIDCmd = bIDCmd And &HB5    ' IDE_ATAPI_IDENTIFY - IDE_ATA_IDENTIFY Or &HFFFFFF00
  113.                 bIDCmd = bIDCmd And IDE_ATA_IDENTIFY
  114.                 bIDCmd = bIDCmd + IDE_ATA_IDENTIFY
  115.  
  116.                 Call RtlZeroMemory(VarPtr(scip), Len(scip))
  117.  
  118.                 scip.cBufferSize = IDENTIFY_BUFFER_SIZE
  119.                 scip.irDriveRegs.bFeaturesReg = 0&
  120.                 scip.irDriveRegs.bSectorCountReg = 1&
  121.                 scip.irDriveRegs.bSectorNumberReg = 1&
  122.                 scip.irDriveRegs.bCylLowReg = 0&
  123.                 scip.irDriveRegs.bCylHighReg = 0&
  124.                 scip.irDriveRegs.bCommandReg = bIDCmd
  125.                 scip.irDriveRegs.bDriveHeadReg = ((bIDCmd And 1&) * 2& ^ &O4) Or &HA0
  126.                 scip.bDriveNumber = i
  127.  
  128.                 If Not (DeviceIoControl(hDrive, DFP_RECEIVE_DRIVE_DATA, scip, Len(scip) - 1&, IdOutCmd, Len(IdOutCmd), cbRead, ByVal 0&) = 0&) Then
  129.  
  130.                     For l = 21 To 41& Step 2&
  131.                         Mid(IdOutCmd.bBuffer, l, 2) = Mid$(IdOutCmd.bBuffer, l + 1&, 1&) & Mid$(IdOutCmd.bBuffer, l, 1&)
  132.                     Next
  133.                     
  134.                     For l = 55 To 95 Step 2&
  135.                         Mid(IdOutCmd.bBuffer, l, 2) = Mid$(IdOutCmd.bBuffer, l + 1&, 1&) & Mid$(IdOutCmd.bBuffer, l, 1&)
  136.                     Next
  137.  
  138.                     Me.FontName = "Courier New"
  139.                     Me.FontSize = 10&
  140.                     Me.Print "Number: " & i + 1& & vbCrLf & _
  141.                              "Device: " & Trim$(Mid$(IdOutCmd.bBuffer, 55, 40)) & vbCrLf & _
  142.                              "Serial: " & Trim$(Mid$(IdOutCmd.bBuffer, 21, 20)) & vbCrLf
  143.  
  144.                 End If
  145.  
  146.             End If
  147.  
  148.         End If
  149.  
  150.         Call CloseHandle(hDrive)
  151.         i = i + 1&
  152.  
  153.     Loop
  154.  
  155.     Me.FontName = "MS Sans Serif"
  156.     Me.FontSize = 8&
  157.     
  158.     Me.Print String$(Me.ScaleWidth \ Me.TextWidth("-") + 1, "-") & vbCrLf & vbCrLf & _
  159.              "(c) Team HomeWork (sne) 2006" & vbCrLf & _
  160.              "mailto: sne_pro@mail.ru" & vbCrLf & vbCrLf & _
  161.              "full source by SolidX:" & vbCrLf & _
  162.              "http://www.wasm.ru/srclist.php?list=6"
  163.     
  164.     Me.Height = Me.CurrentY + (Me.Height - Me.ScaleHeight)
  165.  
  166. End Sub
  167.  

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 20.06.12 16:31
rohitab api monitor говорит, что DeviceIoControl SMART_GET_VERSION вызывает ошибку 1 - неверная функция

Ответить

Номер ответа: 6
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 20.06.12 16:45
http://www.techtalkz.com/microsoft-device-drivers/244086-smart_get_version-returns-error_invalid_function.html

Ответить

Номер ответа: 7
Автор ответа:
 Эдик



Вопросов: 19
Ответов: 23
 Профиль | | #7 Добавлено: 21.06.12 10:02
У кого нит есть пример ?

Ответить

Номер ответа: 8
Автор ответа:
 Alex



Вопросов: 11
Ответов: 40
 Web-сайт: starsorion.com
 Профиль | | #8
Добавлено: 24.06.12 07:57
Пиши в личку, есть пример. Работает на XP/7 (32/64)

Ответить

Номер ответа: 9
Автор ответа:
 Эдик



Вопросов: 19
Ответов: 23
 Профиль | | #9 Добавлено: 24.06.12 09:29
Alex
Спасибо .Благодарью .Где же он - Личка та ваша ???

Ответить

Номер ответа: 10
Автор ответа:
 Alex



Вопросов: 11
Ответов: 40
 Web-сайт: starsorion.com
 Профиль | | #10
Добавлено: 24.06.12 11:34
Упс! Сорри! По привычке сослался на ЛС сайта) Здесь этого нет) Скайп - SGOrion

Ответить

Номер ответа: 11
Автор ответа:
 Эдик



Вопросов: 19
Ответов: 23
 Профиль | | #11 Добавлено: 24.06.12 15:07
Alex
 А сюда ,alx_ , в меиле можно

Ответить

Номер ответа: 12
Автор ответа:
 Alex



Вопросов: 11
Ответов: 40
 Web-сайт: starsorion.com
 Профиль | | #12
Добавлено: 24.06.12 16:45
не очень понял,что Вы написали(

Ответить

Номер ответа: 13
Автор ответа:
 Эдик



Вопросов: 19
Ответов: 23
 Профиль | | #13 Добавлено: 25.06.12 05:56
На форуме нашел, http://www.vbnet.ru/online/showprofile.aspx?id=46 . Это Вы
Если вас не затруднит, отправьте на мой емеил, Пожалуйста.

Ответить

Номер ответа: 14
Автор ответа:
 Alex



Вопросов: 11
Ответов: 40
 Web-сайт: starsorion.com
 Профиль | | #14
Добавлено: 25.06.12 13:27
Нет, это не я. Но мой профиль Вы могли посмотреть в каждом здесь моём ответе) Теперь вижу и у Вас мыло появилось. Вечером ,после работы , отправлю.

Ответить

Номер ответа: 15
Автор ответа:
 Alex



Вопросов: 11
Ответов: 40
 Web-сайт: starsorion.com
 Профиль | | #15
Добавлено: 25.06.12 19:35
проверяйте почту

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам