2009-03-05 58 views
4

我希望能够检测USB密钥何时插入。此外,如果我可以区分USB密钥A和USB密钥B,那么我的状态会更好。最后,如果我可以使用某种类型的硬件序列号,MAC地址或任何其他名称来唯一标识密钥,那么我处于最佳状态。如何唯一标识C#中的USB密钥?

基本上我正在使用USB钥匙作为硬件加密狗以“解锁”我的C#应用​​程序。

回答

7

所有硬盘驱动器都有一个序列号,USB闪存驱动器也没有什么不同。这里有一篇文章,其中有一个示例项目,显示how to get the non-volatile serial number。基本上你只需要枚举系统驱动器并获取PNPDeviceID属性。

+0

谢谢,为获得序列完美工作。我不认为我可以两次获得“幸运”,并了解在将驱动器添加到系统时获得事件通知的方式? – Erik 2009-03-05 06:45:37

0

您需要检索密钥的Hardware ID

我看不到如何订阅插入事件,但您始终可以让用户单击按钮。

+0

我相信每当USB驱动器被Windows格式化时,volumeserialnumber都会更改。有一个单独的序列号是非易失性的,可能更适合使用。 – 2009-03-05 05:25:49

0

硬盘ID不是唯一的。也许在理论上是这样,但实际上并非如此。这没有任何破解,模拟器或任何特殊的程序。