Help Me!怎样强行关闭COM串口.(100分)

  • 主题发起人 zhouxiao
  • 开始时间
Z

zhouxiao

Unregistered / Unconfirmed
GUEST, unregistred user!
我开发了一个MODEM拨号程序,在NT 4.0上运行.MODEM装在COM2口,当用了该机
上的拨号上网程序后COM2口被占用,即使退出拨号上网程序COM2口还是没有被释
放,导致每次拨号上网后我的MODEM拨号程序无法使用,非得重新启动计算机.而
且,程序中判断不出该COM2口是否被占用,如:
if mscomm1.portopen=false then //该条件总是满足
mscomm1.portopen:=true; //此处运行出错,系统提示COM2已被
占用
请各位指点!
 
用这试试:http://delphi.seawind.com.cn/
上的async25.zip写异步串行通信的绝好东东,带源码5.7吨重
 
mscomm1.portopen:=false;
mscomm1.portopen:=true;
试试?
 
mscomm1.portopen:=false;//系统提示错误:operation valid only when
the port is open;
mscomm1.portopen:=true;//系统提示错误: port already open;

也就是说,在程序中只有执行 mscomm1.portopen:=true 后才能执行mscomm1.portopen:=false ,问题的难点在于用 if mscomm1.portopen=true 判断不出别的应用程序是否打开了该COM口,而且找不到相应的方法来强行关闭该串口,
我试过用API的CloseHandle()也不行.
 
那就不知道了。
我用的是TComm32, 一个控制com口的freeware控件。好象从来没遇到过这种问题。
 
不知道你的控件有没有handle句柄,有的话,可以直接使用API: CloseHandle(handle)把他强行关掉.
 
To Alan Jiang 兄:
用CloseHandle只能关闭自身程序创建的端口句柄,事实上用CloseHandle
关不掉其它程序打开的串口.
我将NT的 Serial 服务功能停止,然后将它启动(手工重启该服务功能),
该串口就被关闭了,所以我想API中应该有强行关闭串口的函数,但找不到,是不是
M$没有公开.
哪位兄弟能指点一下,不胜感激!
 
Haha, COM resource is provided by serial service, so when
you restart Serial service, all COM port is unused now. :)

Then I suggest you using service API to stop and restart
Serial service, if you encounter error while try to open
COM port, :)
 
Haha, COM resource is provided by serial service, so when
you restart Serial service, all COM port is unused now. :)

Then I suggest you using NT Service API to stop and restart
Serial service (instead of manually stop/restart it), if you
encounter error while try to open COM port, :)
 
你的程序在Windows95/98下应该没有问题,但是在NT下,由于NT对设备的屏蔽,我想
不能采用这种方法了吧.
 
如果再碰到这种问题,简单地关闭serial service,
然后再启动serial service,就行啦!
 
如何关闭serial service,然后再启动serial service
相应的API函数是?
 
我这里有一个简单的Service控制的Delphi单元(Only 10K),我寄给版主,
请大家试用。
 
相关API函数已找到,现已搞定。感谢各位兄弟,区区100分大家平分了吧
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
745
SUNSTONE的Delphi笔记
S
S
回复
0
查看
625
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
969
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部