代码之家  ›  专栏  ›  技术社区  ›  Steven Smethurst

获取USB序列号C++

  •  4
  • Steven Smethurst  · 技术社区  · 14 年前

    我想从Windows上的USB记忆棒中获取序列号。

    我已经发现了大量的C++示例,以及C++的Linux,但对于C++和Windows都没有。

    编辑

    • 不幸的是,C++/CLI不是一个选项。
    • 我在找设备的序列号,而不是文件系统。或“设备实例路径”又名“instanceid”
    3 回复  |  直到 12 年前
        1
  •  3
  •   Hans Passant    14 年前

    如果C++是一个要求,那么你必须编写COM代码。与vb.net代码相比有点不合时宜,但是在 MSDN library ,您只需要调整查询。

    当心你链接到的例子 返回设备本身的序列号,只返回设备上的文件系统。USB设备没有序列号,这一点很好。

    文件系统序列号很容易复制,以防您打算编写某种许可强制方案。如果这很重要,那么您应该使用为此目的设计的USB设备。一只狗不可能裂开。和C++代码验证许可证将可从制造商获得。

        2
  •  6
  •   Rafael Baptista    12 年前

    我有一篇文章介绍如何在没有使用WMI的情况下获得C++中的卷的USB序号。

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

    这有一个诀窍,你必须把USB设备与磁盘卷匹配起来。如果可以,您希望避免使用WMI,因为它不可靠。

        3
  •  1
  •   MSalters    14 年前

    序列号是下面的子项 HKLM\SYSTEM\CCS\Enum\USB\Vid_xxxx&Pid_yyyy