请问能否在两个不同应用程序中传递消息和参数
现在我想实现在一个程序不妨叫a1,中传递消息给另外一个应用程序a2,
改变a2的窗口标题并显示a2,如何能办到,谢谢
问题点数:20、回复次数:5Top
1 楼hitetoshi(绝影)回复于 2005-05-29 14:23:54 得分 0
首先用EnumWindows或FindWindow得到a2窗口句柄hWnda2。
用SetWindowText(hWnda2,"You WindowTitle")或SendMessage(hWnda2,WM_SETTEXT,0,"You WindowTitle").Top
2 楼natural80()回复于 2005-05-29 15:00:11 得分 0
传递字符串后,是不是在a1中调用a2就能显示出新的窗口标题Top
3 楼RockHwnd(0 error(s), 0 warning(s), Many bugs)回复于 2005-05-29 15:12:05 得分 0
WM_COPYDATA Message
An application sends the WM_COPYDATA message to pass data to another application.
用这个消息可以传送指定字符到别的程序中
Top
4 楼natural80()回复于 2005-05-29 15:29:28 得分 0
能不能给个实例,我做了一下但是好像没有反应Top
5 楼RockHwnd(0 error(s), 0 warning(s), Many bugs)回复于 2005-05-29 15:39:09 得分 20
// Send the string to the main dialog box
COPYDATASTRUCT cds = { 0, lstrlenA(buf) + 1, buf };
HWND hWndtarget=FindWindow(NULL,"Last MessageBox Info");
if(hWndtarget)
MessageBox(NULL,"未找到目标窗口","ERROR",MB_OK);
//wParam为本窗口句柄
SendMessage(hWndtarget,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cds);
===================================================
BOOL CMir2Dlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
// TODO: Add your message handler code here and/or call default
SetDlgItemText(IDC_INFO, (LPCTSTR)pCopyDataStruct->lpData);
return CDialog::OnCopyData(pWnd, pCopyDataStruct);
}
Top




