2012-06-05 108 views
2

當我嘗試使用AsyncPro(TApdComPort)連接到Windows 7上的COM端口時,出現錯誤消息,如「設備已打開」。但同樣的應用程序在Win XP機器中工作正常。我使用Delphi 6開發程序。請幫我解決這個問題。 感謝您的幫助。 謝謝。已在Windows 7中打開COM端口

+2

那麼問題是什麼?錯誤消息告訴你什麼是錯的。你有什麼理由相信這個問題不僅僅是找到開啓和關閉端口的程序那麼簡單?在超級用戶上查看[現在誰在使用我的COM端口?](http://superuser.com/q/55334)。堆棧溢出是編程問題,但我還沒有確信你實際上*有*編程問題。 –

回答

2

您使用什麼組件連接到COM端口?

如果您正在使用CreateFile API來打開端口,請使用GetLastError()API來解決問題的詳細錯誤。

如果不幫助你就意味着它是一個硬件問題

不知道你正在使用ApdComPort的成分,但你可以做一個簡單的測試編寫一個簡單的應用程序打開的端口就這樣

var 
    comHandle : THandle; 
begin 
    comHandle := CreateFile('COM66',GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0); 
    if comHandle = INVALID_HANDLE_VALUE then ShowMessage(SysErrorMessage(GetLastError)) 
    else ShowMessage('Port opened'); 
end //Make shure to replace COM66 with your actual COM Port you wish to open 

如果它顯示然後打開端口它與你使用的,所以我會在這裏推薦這一個http://sourceforge.net/projects/comport/職位其他錯誤信息找到一個解決方案的組件有問題。

+0

@ opc0de我正在使用組件ApdComPort。請讓我知道,如果你需要更多的信息 –

+0

@Delphian結帳我編輯併發布你正在得到什麼錯誤 – opc0de

+0

我使用以下設置,ComNumber:= 1; Baud:= 1200; DataBits:= 8; StopBits:= 2; 奇偶校驗:= pNone –

0

我有一個類似的問題,通過在串口高級屬性(通過設備管理器)更改端口名稱從COM1到COM4解決。

一切然後正常工作。一些程序仍然將重命名的端口看作COM1,但現在他們可以訪問該端口。

0

對我來說,問題是遠程桌面。我沒有選中連接中的所有本地資源。不知何故,遠程桌面阻止了COM端口!