两个进程间通信,sendMessage和接收消息的问题

时间:2020-12-22 14:01:55
接收方进程中只有一个while循环用于不停地获取硬件数据,
直到收到Message后停止接收数据。
发送方的进程采用sendMessage发送消息,
请问接收方该采用哪个函数呢来接收消息呢?
接收方进程中没有窗口处理函数,
我想在接收方程序的while循环中加入PeekMessage来检查是否有消息传入,
不知道这样的方法对不对,
大家帮忙指点一下,多谢了!!

10 个解决方案

#1


两个进程间,用sendMessage发送消息,PeekMessage接收消息。貌似不可以吧!

#2


主函数中开辟一个进程
receiveDataThread = (HANDLE)_beginthreadex(NULL, 0, &ReceiveData, NULL, 0, &receiveDataThreadID);

再向receiveDataThread 发送消息

ReceiveData函数中只有一个while循环接收数据

#3


A中使用beginthreadex创建进程B,
然后A使用SendMessage函数发送消息给B,
通知他停止接收数据,
然后由B进行停止接收数据。

问题是:B进程中如何获取消息呢?

#4


引用 3 楼  的回复:
A中使用beginthreadex创建进程B,
然后A使用SendMessage函数发送消息给B,
通知他停止接收数据,
然后由B进行停止接收数据。

问题是:B进程中如何获取消息呢?

B进程能处理A发的消息就处理,不能处理就调用默认的处理方式
A只需向A发送就行,B怎么处理就怎么处理。。

#5


引用 4 楼  的回复:
引用 3 楼 的回复:
A中使用beginthreadex创建进程B,
然后A使用SendMessage函数发送消息给B,
通知他停止接收数据,
然后由B进行停止接收数据。

问题是:B进程中如何获取消息呢?

B进程能处理A发的消息就处理,不能处理就调用默认的处理方式
A只需向A发送就行,B怎么处理就怎么处理。。


我指的是用什么函数来接收消息。我想使用的是PeekMessage,不过感觉有问题 B进程中只有一个while循环用于接收数据

#6


SendMessage发的必须有一个窗口,PeekMessage/GetMessage遇到sendMessage发的就直接调用窗口过程,而不取回

#7


引用 6 楼  的回复:
SendMessage发的必须有一个窗口,PeekMessage/GetMessage遇到sendMessage发的就直接调用窗口过程,而不取回


应该用PostThreadMessage,这个函数可以给进程B发送消息。B中使用PeekMessage处理消息。

请问B如何发消息给A呢? 原本想在A中创建一个隐藏窗口的,但是需要太多的全局变量。。。

#8


PostThreadMessage回发即可

#9


你们聊得好开心啊。。
好像演小品

beginthreadex什么时候能进城了?不在县城么??

#10


引用 9 楼  的回复:
你们聊得好开心啊。。
好像演小品

beginthreadex什么时候能进城了?不在县城么??


大哥,知道不对您给点提示啊

#1


两个进程间,用sendMessage发送消息,PeekMessage接收消息。貌似不可以吧!

#2


主函数中开辟一个进程
receiveDataThread = (HANDLE)_beginthreadex(NULL, 0, &ReceiveData, NULL, 0, &receiveDataThreadID);

再向receiveDataThread 发送消息

ReceiveData函数中只有一个while循环接收数据

#3


A中使用beginthreadex创建进程B,
然后A使用SendMessage函数发送消息给B,
通知他停止接收数据,
然后由B进行停止接收数据。

问题是:B进程中如何获取消息呢?

#4


引用 3 楼  的回复:
A中使用beginthreadex创建进程B,
然后A使用SendMessage函数发送消息给B,
通知他停止接收数据,
然后由B进行停止接收数据。

问题是:B进程中如何获取消息呢?

B进程能处理A发的消息就处理,不能处理就调用默认的处理方式
A只需向A发送就行,B怎么处理就怎么处理。。

#5


引用 4 楼  的回复:
引用 3 楼 的回复:
A中使用beginthreadex创建进程B,
然后A使用SendMessage函数发送消息给B,
通知他停止接收数据,
然后由B进行停止接收数据。

问题是:B进程中如何获取消息呢?

B进程能处理A发的消息就处理,不能处理就调用默认的处理方式
A只需向A发送就行,B怎么处理就怎么处理。。


我指的是用什么函数来接收消息。我想使用的是PeekMessage,不过感觉有问题 B进程中只有一个while循环用于接收数据

#6


SendMessage发的必须有一个窗口,PeekMessage/GetMessage遇到sendMessage发的就直接调用窗口过程,而不取回

#7


引用 6 楼  的回复:
SendMessage发的必须有一个窗口,PeekMessage/GetMessage遇到sendMessage发的就直接调用窗口过程,而不取回


应该用PostThreadMessage,这个函数可以给进程B发送消息。B中使用PeekMessage处理消息。

请问B如何发消息给A呢? 原本想在A中创建一个隐藏窗口的,但是需要太多的全局变量。。。

#8


PostThreadMessage回发即可

#9


你们聊得好开心啊。。
好像演小品

beginthreadex什么时候能进城了?不在县城么??

#10


引用 9 楼  的回复:
你们聊得好开心啊。。
好像演小品

beginthreadex什么时候能进城了?不在县城么??


大哥,知道不对您给点提示啊