2

当我尝试使用 AsyncPro (TApdComPort) 连接到 Windows 7 上的 COM 端口时,我收到类似“设备已打开”的错误消息。但相同的应用程序在 Win Xp 机器上运行良好。我使用 Delphi 6 开发程序。请帮我解决这个问题。感谢你的帮助。谢谢。

4

3 回答 3

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/在此处发布其他错误消息以找到解决方案。

于 2012-06-05T12:51:05.637 回答
0

我有一个类似的问题,通过在串行端口高级属性(通过设备管理器)中将端口名称从 COM1 更改为 COM4 来解决。

然后一切正常。有些程序仍将重命名的端口视为 COM1,但现在它们可以访问该端口。

于 2012-10-08T14:09:18.347 回答
0

对我来说,问题是远程桌面。我取消选中连接中的所有本地资源。不知何故,远程桌面阻塞了 com 端口!

于 2014-10-23T19:29:09.040 回答