发送WM_COPYDATA消息实现进程间的通信
生活随笔
收集整理的這篇文章主要介紹了
发送WM_COPYDATA消息实现进程间的通信
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
mark一下
結(jié)構(gòu)體
struct Info{TCHAR g_strFileType[MAX_PATH];bool bStop; };
?
這是發(fā)送端的進(jìn)程
HWND hWndRcv=::FindWindow(NULL,_T("RECV COPY DATA"));if(hWndRcv==NULL){::AfxMessageBox(_T("Not Found Window"));((CButton*)(GetDlgItem( IDC_CHECK1 )))->SetCheck(0) ; //IDC_CHECK is ID for controlreturn;}UpdateData(true);Info *m_info;m_info = new Info();_tcscpy(m_info->g_strFileType,m_Filetype.GetBuffer(m_Filetype.GetLength()*2+2));int checkState1 = IsDlgButtonChecked(IDC_CHECK1);if (BST_CHECKED==checkState1){m_info->bStop = true;}else{m_info->bStop = false;}COPYDATASTRUCT cpd;cpd.dwData=1;cpd.cbData=sizeof(Info);cpd.lpData=(PVOID)m_info;::SendMessage(hWndRcv,WM_COPYDATA,(WPARAM)this->m_hWnd,(LPARAM)&cpd);UpdateData(FALSE);::AfxMessageBox(_T("send sucess!"));
?
接受的進(jìn)程
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam) { switch(message) { case WM_DESTROY: PostQuitMessage(0); case WM_COPYDATA:OutputDebugString(_T("CopyData"));// 當(dāng)收到WM_COPYDATA消息時,從lParam中提取出 // COPYDATASTRUCT PCOPYDATASTRUCT lpcds = (PCOPYDATASTRUCT)lParam;if (lpcds->dwData==1){Info *info = (Info*)(lpcds->lpData);OutputDebugString(info->g_strFileType);_tcscpy(g_info.g_strFileType,info->g_strFileType);g_info.bStop = info->bStop;}return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }
?
?
總結(jié)
以上是生活随笔為你收集整理的发送WM_COPYDATA消息实现进程间的通信的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统下如何查看及修改文件读写权
- 下一篇: OllyDbg的一些快捷键