检测COM是否在被其它程序占用(100分)

  • 主题发起人 主题发起人 xudouya
  • 开始时间 开始时间
X

xudouya

Unregistered / Unconfirmed
GUEST, unregistred user!
我是位新手, 我用的是COMPORT控件 在调试过程中,如果我要打开的COM已被占
程序会出错。所以请各位大虾帮个忙 怎样才能检测某个COM是否在用
 

Comhandle:=CreateFile(PChar(Port),generic_read or generic_write,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if comhandle = INVALID_HANDLE_VALUE then
result:=false
else
result:=true;
port; 为计算机的串口“COM1”、“COM2” etc.
false:表示已占用;
true :表示可用。

 
按上面的方法做一个循环,得出哪一个口可以用,和不可以用的
 
请问 CREATEFILE 返回为什么类型,我调试时 他说COMHANDLE 是永远不等 INVALID—HANDLE
—VALUE
 
ComHandle:DWORD;
 
我的意思是COM在打开以前, 检测是否已被其他程序占用
 
多人接受答案了。
 
后退
顶部