Vb.net 获取IDE和SATA的H/D序列号(非卷序列号)
如何在VB.NET中读取IDE和SATA驱动器的硬盘序列号? (我不想要卷序列号) 如果可能,应在没有管理权限的情况下收集XP和Vista的此信息。您可以像这样使用(Windows Management Instrumentation):Vb.net 获取IDE和SATA的H/D序列号(非卷序列号),vb.net,serial-number,Vb.net,Serial Number,如何在VB.NET中读取IDE和SATA驱动器的硬盘序列号? (我不想要卷序列号) 如果可能,应在没有管理权限的情况下收集XP和Vista的此信息。您可以像这样使用(Windows Management Instrumentation): Dim mos As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia") For Each mo As ManagementObject In mos.Get() Dim
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)
本文包括一个下载,作者在其中实现并通过VB.NET中的互操作服务提取驱动器信息
要使用上述任何一种方法,您都需要管理员权限,可以找到一个似乎可以绕过此权限的实用程序。如果你喜欢冒险,你可以阅读C++/Win32。(查看函数“ReadPhysicalDrivinntWithZeroRights()”)以下是获取硬盘序列号的代码
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
希望有帮助。这被标记为低质量。请在您的代码上展开,回答解释代码的作用。
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