获取USB序列号c ++

时间:2010-06-22 20:21:29

标签: c++ windows usb

我正在寻找从c ++中的Windows上的USB记忆棒中检索序列号。

我找到了很多C#示例,c ++用于linux,但没有用于c ++和windows。

修改

  • 不幸的是,C ++ / CLI不是一个选项。
  • 我正在寻找设备的序列号而不是文件系统。或“设备实例路径”AKA“InstanceID”

3 个答案:

答案 0 :(得分:6)

我有一篇关于如何在不使用WMI的情况下获取C ++卷的USB序列号的文章

http://oroboro.com/usb-serial-number/

有一个技巧,你必须匹配USB设备与磁盘卷。如果可以的话,你想避免使用WMI,因为它不可靠。

答案 1 :(得分:3)

如果需要C ++,那么你必须编写COM代码。与VB.NET代码相比有点不愉快,但MSDN library中有很好的示例,您只需要调整查询。

请注意,您链接到的示例 not 会返回设备本身的序列号,只返回设备上的文件系统。哪个好到可以得到它,USB设备没有序列号。

如果您正在考虑编写某种许可执行方案,则文件系统序列号很容易复制。如果这很重要,那么您应该使用专为此目的而设计的USB设备。加密狗。不可能破解。并且可以从制造商处获得用于验证许可证的C ++代码。

答案 2 :(得分:1)

序列号是HKLM\SYSTEM\CCS\Enum\USB\Vid_xxxx&Pid_yyyy

下的子项