阅读:2982回复:14
请教:鼠标怎么会干扰串口通信程序
我用vc++6.0编写了一个console的串口通信程序。在win2000的命令提示符状态(也就是dos)下运行。但发现,在通信过程中,如果在dos的黑色窗口内点击鼠标左键,console程序就会暂停发送数据,并选择一个字符块(显示白色);点击鼠标右键,console程序又会恢复运行。
请问各位大虾是否遇到过上述问题,怎样避免鼠标对通信程序的的干扰呢? 谢谢! |
|
|
沙发#
发布于:2005-03-03 17:30
你换一个端口号试试.或者在别的机器上测试一下。看看是不是同样的现象
|
|
|
板凳#
发布于:2005-03-03 17:48
我试过了,不是端口号的问题。现象都一样。我想是不是和win2000的多任务处理有关。另外一个程序用汇编语言编写的就不会有问题。不知道怎么解决。
|
|
|
地板#
发布于:2005-03-03 17:58
你到别的机器上试试,看看是不是显卡的问题。
|
|
|
地下室#
发布于:2005-03-03 18:00
windows应用程序,自己有时候也会出现类似的现象
|
|
|
5楼#
发布于:2005-03-03 18:01
我要去吃东西了,886~
|
|
|
6楼#
发布于:2005-03-03 18:37
在 Windows Console 窗口中,点击左键选中,当前 Console 中执行的任务进程都会暂停。
任何进程均如此,与串口程序无关。 |
|
|
7楼#
发布于:2005-03-04 07:38
win2000的命令行窗口并不是dos,虽然窗口外观看起来很像是dos,其内部运行机制与dos有很大不同。
|
|
8楼#
发布于:2005-03-04 09:09
在 Windows Console 窗口中,点击左键选中,当前 Console 中执行的任务进程都会暂停。 我的程序是读卡器程序。以前有一个版本,但不是用VC++编写的,在无数机器上用过(包括win2000,win98)都没有上述问题。难道上一个版本的程序不是Console程序? 另外,用驱动程序的方式可否解决该问题呢? :( :( |
|
|
9楼#
发布于:2005-03-04 16:55
[quote]在 Windows Console 窗口中,点击左键选中,当前 Console 中执行的任务进程都会暂停。 我的程序是读卡器程序。以前有一个版本,但不是用VC++编写的,在无数机器上用过(包括win2000,win98)都没有上述问题。难道上一个版本的程序不是Console程序? 另外,用驱动程序的方式可否解决该问题呢? :( :( [/quote] 我觉得用驱动有点过了,添一个线程就应该能解决问题。 我敢肯定和通信口没有问题,因为windows对任何i/o都有一个mask来筛选,如果只有像串口等这样和系统无关的i/o才会被允许,而且不是直接存取。 |
|
|
10楼#
发布于:2005-03-05 11:31
我用cserialport类作串口的时候也遇到过,不仅鼠标有影响,而且切换窗口的时候也有影响。后来发现是message作怪。
|
|
11楼#
发布于:2005-03-06 14:18
我用cserialport类作串口的时候也遇到过,不仅鼠标有影响,而且切换窗口的时候也有影响。后来发现是message作怪。 串口操作很简单,自己调用api就非常简单了。 还有,如果必要使用多线成肯定会好些 |
|
|
12楼#
发布于:2005-03-07 09:30
我也认为新开一个线程,专门处理串口事件是个好办法。很可能会解决该问题。
这个问题是一个很早以前发现的问题。但现在有其他事情忙,没办法验证。 感谢9楼的回答! :) |
|
|
13楼#
发布于:2005-03-07 17:32
在程序新开线程,发现和以前一样。仍然不能解决该问题。
如果能够屏蔽鼠标消息也可以呀。 还请那位高手指点! |
|
|
14楼#
发布于:2005-03-08 16:07
将这个串口通信程序做成一个服务,窗口都没有,也谈不上干扰了
|
|
|