2009-03-05 20 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不是唯一的。也許在理論上是這樣,但實際上並非如此。這沒有任何破解,模擬器或任何特殊的程序。