2008-12-31 33 views
2

我正在研究與串口通信的應用程序,並且在我的開發機器上,我正在運行Vista,並且該串行端口是藍牙連接。偶爾,串口會陷入我的應用程序無法再連接它的狀態。在.net中,我得到一個IOException,並顯示消息「找不到元素」。Vista上的鎖定串行端口

我試過重新啓動應用程序,連接其他應用程序(像HyperTerm的通信客戶端),但沒有任何幫助。我找不到任何更具體的錯誤信息,並且沒有記錄到機器的事件日誌中。設備管理員告訴我端口「正常工作」。

是否有任何方法可以找出哪個進程和/或.dll擁有串行端口,和/或強制端口關閉?

如果它有什麼區別,我的應用程序在C#中,但從結構上來說,用「using」語句打開和關閉端口並不方便。

感謝, 安迪

回答

2

據我所知,你不能關閉你沒有把手的串行端口。我對藍牙串行端口的體驗是,它們最終可能會在連接時被映射到不同的COM端口號,並且有時會在斷開連接時留下假的COM端口。例如,我目前沒有連接藍牙設備,但是如果我進入設備管理器,我會看到共有11個COM端口列爲藍牙串行端口每個端口上的屬性顯示設備正在工作並可用,雖然偶爾會出現故障,但我通常可以打開這些端口。我的工作是強制通過屬性/高級/ COM端口號連接設備的COM端口號。我不確定問題是否與驅動程序有關(在這種情況下爲IVT corp)或Windows管理blutooth串行端口的方式有問題。

對不起,我不能有任何幫助。