功能需求:现如今有两个进程一个进程A,一个进程B,通过Windows的消息机制实现进程A 发送消息给B, 进程B也能发送消息给A。
平台:首先我们使用Win32程序实现相应的功能,使用VS2017+C++以及Windows API工具与函数惊醒开发。
方案:通过对需求(即我们只需要两个进程能够收到响应的消息,具体应用场景就是两个进程是同种属性的进程,也即都为另一种进程而生存且服务,例如,现在进程A、B都是为了开启主程序C的,如果用户通过进程A开启的,那么主程序开启过后,进程A、B就都可以关闭了,为了做到同步,进程A就要给进程B发送关闭消息,等进程B接收关闭消息就可执行销毁流程)进行分析,采用比较简单的隐藏窗口来接收相关进程发送的消息,并由自己进行后续的处理;
程序实现:
本程序提供的是其模板,并不能直接运行,需要相应的修改才行!
进程A:
#include“processA“
#include<windows>
#include"processA.h"
#define WM_CLOSEPROCESSA (WM_USER + 0x2007)
#define WM_CLOSEPROCESSB (WM_USER + 0x2008)
// 隐藏窗口句柄
HINSTANCE g_hInstance = NULL;
// 气泡系统托盘图标菜单窗口类名
LPCTSTR g_szKBubbleTrayIconMenuWindowClass = _T("QWidget&