2013-08-01 42 views
2

我尋找C#中的辦法有一個持久的(當橫跨最終用戶拔出輪轂/重新啓動其計算機)標識符USB插槽,更具體而言,SD卡讀卡器。驅動器號並不總是分配給同一個插槽,但我需要一種物理識別插槽A的方法;因爲一旦我可以識別它,我就可以建立與驅動器盤符的連接。C#的.NET USB設備持久的標識符

所以我的問題(S):

  1. 這可能嗎?
  2. 如果是的話,我將如何去獲得這些標識符?

回答

1

WMI類Win32_USBHub。

ManagementObjectSearcher sidQuery = new ManagementObjectSearcher("Select * From Win32_USBHub"); 
ManagementObjectCollection results = sidQuery.Get(); 
List<String> deviceID = new List<String>(); 
foreach (ManagementObject result in results) 
{ 
    deviceID.Add(result["DeviceID"]); 
} 

查看更多在這裏:Get List of connected USB Devices

文檔關於Win32_USBHub:http://msdn.microsoft.com/en-us/library/windows/desktop/aa394506(v=vs.85).aspx

+0

謝謝!還有一個問題,有沒有辦法找出Windows是否已分配的USB設備的任何字母(假設該設備是驅動器,而不是鍵盤爲例),如果有,是什麼/是? – user2588050

+0

沒關係,我找到了解決的意見問題。 [鏈接](http://stackoverflow.com/questions/9467506/how-to-have-the-drive-letter-with-the-device-id-on-windows7) – user2588050