void CWlwzDlg::OnButton1()
{
CFileDialog dlg(TRUE);
if(dlg.DoModal()==IDOK)
{
ShellExecute(hWnd,"open",dlg.GetFileName(),NULL,NULL,SW_SHOW);
}
}void CWlwzDlg::OnButton2()
{
::SendMessageA(hWnd,WM_KEYDOWN,VK_F1,0L);
::SendMessageA(hWnd,WM_KEYUP,VK_F1,0L);
}这样写为什么不能发送正确的消息给另一个程序呢?
{
CFileDialog dlg(TRUE);
if(dlg.DoModal()==IDOK)
{
ShellExecute(hWnd,"open",dlg.GetFileName(),NULL,NULL,SW_SHOW);
}
}void CWlwzDlg::OnButton2()
{
::SendMessageA(hWnd,WM_KEYDOWN,VK_F1,0L);
::SendMessageA(hWnd,WM_KEYUP,VK_F1,0L);
}这样写为什么不能发送正确的消息给另一个程序呢?
具体参考http://www.vckbase.com/document/viewdoc/?id=1360
相应的消息就可以了
void CWlwzDlg::OnButton2()
{
::SendMessageA(hWnd,WM_KEYDOWN,VK_F1,0L);
::SendMessageA(hWnd,WM_KEYUP,VK_F1,0L);
}hWnd看起来是本程序的窗口啊。自己给自己发消息吗?想给谁发消息就要用谁的窗口句柄做第一个参数。
要是知道对方窗口的标题,可以用::FindWindow(NULL,"标题")得到对方窗口的句柄
要是对方窗口的标题不一定,可以用spy++查下它的窗口类名。::FindWindow(窗口类名,NULL)