模拟鼠标键盘消息
[編輯] [转简体] (简体译文)
|
作者:huidong
| 分類:【編程】Win32
鼠标
[
9 瀏覽
0 評論
0 贊
0 踩
]
概要
控制鼠标位置,模拟鼠标按下、松开(点击),模拟键盘按下
正文
鼠标
函数:mouse_event();
函数原型:mouse_event(DWORD dwFlag,DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo );
//把鼠标移动到坐标为50,130的位置 SetCursorPos(50,130); //按下鼠标,并释放 mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
MOUSEEVENTF_MOVE:表明发生移动。
MOUSEEVENTF_LEFTDOWN:表明接按下鼠标左键。
MOUSEEVENTF_LEFTUP:表明松开鼠标左键。
MOUSEEVENTF_RIGHTDOWN:表明按下鼠标右键。
MOUSEEVENTF_RIGHTUP:表明松开鼠标右键。
MOUSEEVENTF_MIDDLEDOWN:表明按下鼠标中键。
MOUSEEVENTF_MIDDLEUP:表明松开鼠标中键。
MOUSEEVENTF_WHEEL:在Windows NT中如果鼠标有一个轮,表明鼠标轮被移动。移动的数量由dwData给出。
原文 https://www.cplusplus.me/1366.html
封装:
// 鼠标点击某一位置 void ClickAt(int x, int y) { SetCursorPos(x, y); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); }
键盘
keybd_event函数模拟WM_KEYUP或WM_KEYDOWN消息。
例子1:模拟按下'A'键
keybd_event(65,0,0,0); keybd_event(65,0,KEYEVENTF_KEYUP,0);
例子2:模拟按下'ALT+F4'键
keybd_event(18,0,0,0); keybd_event(115,0,0,0); keybd_event(115,0,KEYEVENTF_KEYUP,0); keybd_event(18,0,KEYEVENTF_KEYUP,0);
键值表 https://docs.microsoft.com/zh-cn/windows/win32/inputdev/virtual-key-codes?redirectedfrom=MSDN
原文 https://www.cnblogs.com/shenbing/p/5964675.html