方法有两种:
1.SendMessage or PostMessage
2.keybd_event,mouse_event
前者更强大,指定hwnd后可以后台发送,而后者只能够发送前台信息..也就是必须窗口最前
简单的举例:
方法2
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
keybd_event(k,0,0,0);
keybd_event(k,0,KEYEVENTF_KEYUP,0);
方法1
以当前程序的某个输入框为例:
HWND tw2 = GetDlgItem(IDC_EDIT1)->m_hWnd;
::SendMessage(tw2,WM_CHAR,s[i],0);
是个按钮:
HWND tw3 = GetDlgItem(IDOK)->m_hWnd;
::SendMessage(tw3,WM_LBUTTONDOWN,0,0);
::SendMessage(tw3,WM_LBUTTONUP,0,0);

本文介绍了两种模拟鼠标和键盘事件的方法:通过SendMessage或PostMessage,以及使用keybd_event和mouse_event函数。重点讨论了它们的区别,如SendMessage能后台发送,而keybd_event/mouse_event仅限前台。并提供了具体的代码示例,包括如何针对特定窗口(如记事本)进行操作,以及如何通过进程ID查找目标窗口句柄。
最低0.47元/天 解锁文章
2618

被折叠的 条评论
为什么被折叠?



