COM端口已在Windows 7中打开

时间:2012-06-05 12:48:56

标签: delphi serial-port port

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

3 个答案:

答案 0 :(得分: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/发布一条其他错误消息以找到解决方案。

答案 1 :(得分:0)

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

一切都很好。有些程序仍将重命名的端口视为COM1,但现在可以访问端口。

答案 2 :(得分:0)

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