gpt4 book ai didi

vb.net - 获取 IDE 和 SATA 的 H/D 序列号(不是卷序列号)

转载 作者:行者123 更新时间:2023-12-02 07:56:49 24 4
gpt4 key购买 nike

如何在 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 服务提取驱动器信息。

要使用上述任何一种方法,您都需要管理员权限,可以找到一个似乎可以规避此问题的实用程序 here .如果您喜欢冒险,C++/Win32 source code可供您细读。 (查看函数“ReadPhysicalDriveInNTWithZeroRights()”)

关于vb.net - 获取 IDE 和 SATA 的 H/D 序列号(不是卷序列号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/535902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com