我試圖獲取可用的COM端口的列表與「視窗2000」得到實際的COM端口號 - 方法這裏解釋:
http://www.codeproject.com/KB/system/setupdi.aspx如何使用SetupDiGetDeviceRegistryProperty
我當前的代碼:http://pastebin.ca/1977670
這就是我得到:
\\?\ftdibus#vid_0403+pid_6001+ftf479xra#0000#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
USB Serial Port (COM13)
USB Serial Port
\\?\hdaudio#func_02&ven_11c1&dev_1040&subsys_11c10001&rev_1002#4&ddab605&0&0101#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
Agere Systems HDA Modem
Agere Systems HDA Modem
我通過SetupDiGetDeviceRegistryProperty的不同的選擇看,但我無法找到合適的人,以獲得實際的COM端口號。 (見http://msdn.microsoft.com/en-us/library/ff551967(VS.85).aspx)
我能找COMXXX在友好名稱(通過正則表達式或任何..),但我不認爲這是正確的解決方案......
請注意,您通常不需要或不需要COM端口號,因爲'CreateFile'工作得很好,如果給定設備接口路徑。處理傳統軟件時,您只需要COM端口號(並且鍵入起來更方便)。但請理解,編寫不接受真實設備路徑的COM端口代碼與編寫不能處理長文件名的文件I/O庫相當,並希望您提供8.3短名稱。 – 2014-12-12 16:07:49
我用它來顯示下拉列表,供用戶選擇將在應用程序中使用的COM端口之一,而不是實際使用COM端口。 – Strayer 2014-12-19 10:09:55
然後只需使用友好名稱。沒有必要從中提取COM端口號,其他信息(是USB?藍牙?)通常比數字更有價值,所以您*不應該*提取COM端口號。 – 2014-12-19 15:10:17