以编程方式获取 USB 存储设备实例 ID(唯一 ID)
如何以编程方式获取用户刚刚插入的 USB 大容量存储设备的设备实例 ID(唯一 ID)?
How to programmatically get the Device Instance ID (unique ID) of a USB mass storage device that a user just plugged in?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过注册设备更改通知,从任何窗口句柄捕获 WM_DEVICECHANGE。因此:
WM_DEVICECHANGE 的 lParam 可以转换为 DBT_DEVTYP_DEVICEINTERFACE。注意 - 当插入设备时,您可能会收到多个 WM_DEVICECHANGE 通知。只需过滤到达事件并忽略重复项。
Catch WM_DEVICECHANGE from any window handle by registering for device change notifications. As such:
The lParam of the WM_DEVICECHANGE can be cast to DBT_DEVTYP_DEVICEINTERFACE. Note - when plug in a device you may get multiple WM_DEVICECHANGE notifications. Just filter on the arrival event and ignore duplicates.
我认为你可以使用 WMI 来做到这一点。查看
Win32_LogicalDiskToPartition
类以获取所有磁盘名称的列表,然后使用这些名称查询类Win32_DiskDrive
及其PNPDeviceID
属性。实际上,请查看此处以获取更好的说明和一个不错的课程,可以为您做到这一点。
I think you can do it using WMI. Look at the
Win32_LogicalDiskToPartition
class to get a list of all disk names and then use those names to query the classWin32_DiskDrive
and it'sPNPDeviceID
property.Actually, look here for better instructions and a nice class that does it for you.