2010-07-09 148 views
0

我正在開發用於Windows Mobile 6.1的小型演示應用程序,以獲取所有串行端口及其上配置的藍牙設備的列表。我正面臨一些奇怪的問題。SerialPort.GetPortNames()不返回正確的結果

  1. 當我進入Settings-> Connections-> Bluetooth-> COM POrts時,可以看到總共10個COM端口。但是,當我使用SerialPort.GetPortNames()來獲取所有端口時,它顯示了9個端口,即少一個端口。最後一個端口即COM09不返回結果集中。

  2. 然後,我刪除了其中一個COM端口(COM08)上配置的配對設備之一,並且SerialPort.GetPortNames()返回了沒有COM08端口的結果集。

  3. 我進一步試圖知道哪些COM端口仍未使用。當我試圖在「未使用」(根據我的程序)端口之一手動創建「新出站端口」時,它會提示「COM端口無法創建」!

有人能告訴我理由並指導我進一步解決問題嗎?

+0

我已經通過這個鏈接。 http://stackoverflow.com/questions/2754857/c-serialport-getportnames-behavior 偉大的,如果我瞭解更多的細節和解決方案。 – Amey 2010-07-09 09:29:18

回答

0

Bluetootch驅動程序可能正在修改驅動程序和GetPortNames可能正在查看該註冊表項的註冊表項。

使用刪除註冊表編輯器查看HKLM \ Drivers \ BuiltIn和HKLM \ Drivers \ Active,看看發生了什麼。您可能會編寫自己的解析器,查看這些值以獲取您的內容。