在涉及到将一个进程的信息发送到另一个进程的消息,并让另一个进行消息处理,通常需要涉及到进程间通讯。
- 分别在两个进程间定义消息;
- 在要接受的进程间定义消息映射;
- 在发送消息的进程进行消息触发;
在进行发送消息的进程首先获取到接受进程的句柄,通过定义的消息进行发送消息,在接受进程定义对应的消息映射;
在发送进程定义消息:
#define MESS_1 WM_USER + 111
#define MESS_2 WM_USER + 112
#define MESS_3 WM_USER + 113
#define MESS_4 WM_USER + 114
#define MESS_5 WM_USER + 115
#define MESS_6 WM_USER + 116
#define MESS_7 WM_USER + 117
在发送进程获取接受进程的句柄:
HWND m_hAdaptorWnd = NULL;
CString strfilename(buf);
strfilename.Append( _T("Driver\\HM_UDMGenTest.exe"));
WinExec(strfilename,SW_HIDE);
CString str = _T("打标软件DEMO"); //要查找的窗体名称
m_hAdaptorWnd = FindWindow(NULL,str);
ShowWindow(m_hAdaptorWnd,SW_HIDE);
if(!m_hAdaptorWnd)
{
CDebug::ShowDetailMessage("HM_UDMGenTest do not start!");
}
在发送进程进行消息传递