2012-06-05 85 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端口!