获得H/D的序列号(不容量的序号)IDE和SATA
-
22-08-2019 - |
题
我怎么能读硬盘上的序列号IDE和SATA驱动器VB.NET?(我可不想卷序列编号)。
这个信息应该收集这两个XP和Vista如果可能没有管理权。
解决方案
你可以使用 WMI (Windows管理规范)是这样的:
Dim mos As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
For Each mo As ManagementObject In mos.Get()
Dim serial As String = mo("SerialNumber").ToString()
Next
虽然,我读过有关的案件中,没有序列号的返回使用WMI。另一种方式完成这一任务将是通过调用平台服务(PInvoke).
此 文章包括下载在其提交人实现了 调用() 和 DeviceIoControl() 提取驱动的信息通过互操作服务VB。网。
使用上述所概述的方法将需要管理权,一个实用工具,这似乎是规避这可以找到 在这里,.如果你喜欢冒险的感觉C++/Win32 源代码 可供你细读。(检查功能的'ReadPhysicalDriveInNTWithZeroRights()')
其他提示
Public Function getHardDiskSerialNo()
Dim serial As String
Dim hd As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
For Each dvs As ManagementObject In hd.Get()
serial = dvs("SerialNumber").ToString()
Next
Return serial
End Function
下面是代码以获得HDD序列号
Dim HDD_Serial As String
Dim hdd As New ManagementObjectSearcher("select * from Win32_DiskDrive")
For Each hd In hdd.Get
HDD_Serial = hd("SerialNumber")
MsgBox(HDD_Serial)
Next
希望它帮助。
不隶属于 StackOverflow