vb.net – 获取IDE和SATA的H / D序列号(非Volumn序列号)

如何在VB.NET中读取IDE和SATA驱动器的硬盘序列号?
(我不想要卷序列号).

如果没有管理权限,应该为XP和Vista收集此信息.

您可以像这样使用 WMI(Windows Management Instrumentation):
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).

This文章包括下载,其中作者实现CreateFile()DeviceIoControl()以通过VB .NET中的Interop服务提取驱动器信息.

要使用上述方法中的任何一种,您将需要ADMIN权限,可以找到一个似乎可以绕过这个实用程序的实用程序here.如果您喜欢冒险,可以使用C / Win32 source code进行细读. (查看函数’ReadPhysicalDriveInNTWithZeroRights()’)

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...