利用sendMessage实现进程间通信

时间:2014-08-24 13:44:25
【文件属性】:

文件名称:利用sendMessage实现进程间通信

文件大小:260KB

文件格式:RAR

更新时间:2014-08-24 13:44:25

SendMessage

来源 visual c++开发范例,IDE:vs2010. 分为 a.server(接收消息,显示接收到的数值). b.client(打开server进程,向server主窗体发送消息). //得到主窗口 HWND CMyJC006ClientDlg::GetServerMainWnd() { HWND hWnd; if(0==EnumWindows((WNDENUMPROC)EnumWndProc,(LPARAM)&hWnd)) //find { return hWnd; } return NULL; } //枚举窗口的回调函数 BOOL CALLBACK EnumWndProc(HWND hWnd,LPARAM lParam) { TCHAR szWndText[MAX_PATH]; unsigned long dwProcessID; GetWindowThreadProcessId(hWnd,&dwProcessID); if(dwProcessID==g_ProcessId) { if(NULL==::GetParent(hWnd)) //is top window { *(HWND*)lParam=hWnd; return FALSE; //means 0 } } return TRUE; } void CMyJC006ClientDlg::OnBnClickedButtonSend() { // TODO: 在此添加控件通知处理程序代码 //handle --wnd UpdateData(TRUE); //to var HWND hWnd=GetServerMainWnd(); if(hWnd==NULL) { AfxMessageBox(_T("获取MyJC006Server窗口句柄失败!")); ((CButton*)GetDlgItem(IDC_BUTTON_OPEN))->EnableWindow(TRUE); ((CButton*)GetDlgItem(IDC_BUTTON_SEND))->EnableWindow(FALSE); ((CEdit*)GetDlgItem(IDC_EDIT_SENDTEXT))->SetReadOnly(TRUE); return; } //进程ID-->主窗口句柄 CWnd *pWnd=CWnd::FromHandle (hWnd); //wonder 22,get句柄server窗体 pWnd->SendMessage (WM_TEXTMESSAGE,this->m_nTextMessage,0); }


【文件预览】:
MyJC006Server
----ipch()
--------myjc006client-e081d977()
--------myjc006server-cff03da7()
----MyJC006Server.sln(1KB)
----Debug()
----MyJC006Server.suo(15KB)
----MyJC006Client()
--------ReadMe.txt(3KB)
--------MyJC006ClientDlg.cpp(6KB)
--------MyJC006Client.vcxproj.user(143B)
--------res()
--------stdafx.h(2KB)
--------MyJC006Client.h(484B)
--------Debug()
--------stdafx.cpp(146B)
--------MyJC006Client.vcxproj.filters(2KB)
--------MyJC006ClientDlg.h(779B)
--------Resource.h(2KB)
--------targetver.h(234B)
--------MyJC006Client.rc(10KB)
--------MyJC006Client.vcxproj(6KB)
--------MyJC006Client.cpp(2KB)
--------MyJC006Client.aps(103KB)
----MyJC006Server()
--------ReadMe.txt(3KB)
--------MyJC006Server.vcxproj.filters(2KB)
--------res()
--------MyJC006Server.vcxproj(6KB)
--------stdafx.h(2KB)
--------MyJC006Server.cpp(2KB)
--------MyJC006Server.h(484B)
--------Debug()
--------MyJC006Server.rc(10KB)
--------stdafx.cpp(146B)
--------Resource.h(1KB)
--------MyJC006ServerDlg.cpp(3KB)
--------MyJC006Server.aps(103KB)
--------targetver.h(234B)
--------MyJC006ServerDlg.h(672B)
--------MyJC006Server.vcxproj.user(143B)

网友评论

  • 不错,适合参考
  • 可以向活动窗体通信
  • 挺适合学习的,谢谢
  • 很简单的问题,资料!
  • 可以向活动窗体通信,可否提供一个和界面无关的钩子程序,处理类似的消息呢...