测试了好久终于解决了按键盘的方法sendMessage
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶
层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
Msg:指定被发送的消息。
wParam:指定附加的消息指定信息。
IParam:指定附加的消息指定信息。
1的ASCII值:49
2的ASCII值:50
a的ASCII值:97
A的ASCII值:65
const CString title = "无标题 - 记事本";
void CTxttestDlg::OnButton1()
{
HWND hwnd = ::FindWindow("Notepad",NULL);
HWND hwnd1 = ::FindWindowEx(hwnd,NULL,"Edit",0);
::SendMessage(hwnd1,WM_COPY,0,0);
}
void CTxttestDlg::OnButton2()
{
// TODO: Add your control notification handler code here
//HWND hwnd = ::FindWindow(NULL,title);
HWND hwnd = ::FindWindow("Notepad",NULL);
HWND hwnd1 = ::FindWindowEx(hwnd,NULL,"Edit",0);
::SendMessage(hwnd1,WM_PASTE,0,0);
}
void CTxttestDlg::OnButton3()
{
HWND hwnd = ::FindWindow("Notepad",NULL);
HWND hwnd1 = ::FindWindowEx(hwnd,NULL,"Edit",0);
//::SendMessage(hwnd1,WM_PASTE,0,0);
//::SendMessage(hwnd1,WM_CHAR,'A',0);
::PostMessage(hwnd1,WM_KEYDOWN,50,0); //2
::PostMessage(hwnd1,WM_KEYUP,51,0); //3
//用PostMessage可以输出,SendMessage不行
//::PostMessage(hwnd1,WM_KEYDOWN,VK_F1,0);//按下F1
}
void CTxttestDlg::OnButton4()
{
// TODO: Add your control notification handler code here
HWND hwnd = ::FindWindow(NULL,title);
::SendMessage(hwnd,WM_CLOSE,0,0);
}