W wei0916 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #1 想用到一个串口,但已被其他程序占用,现在想调用,如何做到? 前提是不能关闭调用这个串口的程序 如果能做到在COM1被其他程序占用的前提下,获取从COM1接收到的数据也可以.
M Mike1234567890 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #2 如果占用串口的程序你可以控制的话 可以考滤使用串口服务器模型
W wei0916 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #3 谢谢参与,请大家发表一下看法.解决问题可以开贴再加分200......... 那个调用串口的程序不是我做的,我可以控制程序(打开程序,关闭程序等一些简单操作); 我现在要做的是当那个程序发完数据之后,我再次打开那个程序调用的串口,发一些数据给设备,但是那个程序占用串口不关闭,急呀.............
谢谢参与,请大家发表一下看法.解决问题可以开贴再加分200......... 那个调用串口的程序不是我做的,我可以控制程序(打开程序,关闭程序等一些简单操作); 我现在要做的是当那个程序发完数据之后,我再次打开那个程序调用的串口,发一些数据给设备,但是那个程序占用串口不关闭,急呀.............
W wei0916 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #5 第一帖就说了不能关那个程序呀. 还有一种方式,就是有没有办法在COM1被别的程序打开的情况下也能获取到设备发上来的数据?这样如果可行的话,也可以实现我的目的;
W wei0916 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #7 能实现以下功能的朋友能否留下QQ或者EMAIL; 1:强行关闭被别的程序打开的串口; 2:不用强行半闭也可以,但是可以获取已被打开COM口的数据;
Z zhaokaien Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #8 串口有数据到来时会产生事件,你可以建一个全局钩子,然后对数据进行截取 从低层上看,到来数据会产生相关的中断,如果你对汇编够精通,也可以通过汇编 同时,在win98下面你可以直接操作硬件,所以你可以直接通过汇编程序操作串口,在win2000以上的不能直接操作硬件,但是微软提供了相关的动态链接库,winio.dll,可能是这个,你可以到网上找找,通过这个接口也可以实现,还有的办法是,一般个高级应用程序打开串口都是通过APIcreatefile来映射串口,从而操作串口,你可以通过其他API获取createfile建立起来的句柄,然后结束他,这个我是猜测的做法,行不行的通,需要你自己去试验
串口有数据到来时会产生事件,你可以建一个全局钩子,然后对数据进行截取 从低层上看,到来数据会产生相关的中断,如果你对汇编够精通,也可以通过汇编 同时,在win98下面你可以直接操作硬件,所以你可以直接通过汇编程序操作串口,在win2000以上的不能直接操作硬件,但是微软提供了相关的动态链接库,winio.dll,可能是这个,你可以到网上找找,通过这个接口也可以实现,还有的办法是,一般个高级应用程序打开串口都是通过APIcreatefile来映射串口,从而操作串口,你可以通过其他API获取createfile建立起来的句柄,然后结束他,这个我是猜测的做法,行不行的通,需要你自己去试验
C catbrother Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #9 有一个疑问 我们怎么来判断,这个句柄是串口还是别的什么文件或者控件窗体之类的东西呢?
W wei0916 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #10 强行关闭串口: 第一步应该是如何找到被占用的COM的线程吧. 找到了是不是就可以用CLOSEHANDLE直接关闭呢. 获取被占用的COM口的数据: 这个问题我想比较复杂吧,用HOOK如何实现呢.
施 施海鹏 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #11 关注,我也好像知道。平时也碰到类似的问题,不知道如何解决。