Windows API 模拟键鼠操作
移动鼠标位置
使用 SetCursorPos 可以移动鼠标位置:
1SetCursorPos(x, y);在开启缩放的情况下,使用的是逻辑坐标,可以通过以下代码忽略缩放:
1SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);模拟鼠标点击
按下:
1INPUT input = {0};
2input.type = INPUT_MOUSE;
3input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN; // 鼠标左键按下
4SendInput(1, &input, sizeof(INPUT));抬起:
1INPUT input = {0};
2input.type = INPUT_MOUSE;
3input.mi.dwFlags = MOUSEEVENTF_LEFTUP; // 鼠标左键抬起
4SendInput(1, &input, sizeof(INPUT));模拟键盘操作
按下:
1INPUT input = {0};
2input.type = INPUT_KEYBOARD;
3input.ki.wVk = key; // 虚拟按键码
4SendInput(1, &input, sizeof(INPUT));抬起:
1INPUT input = {0};
2input.type = INPUT_KEYBOARD;
3input.ki.wVk = key; // 虚拟按键码
4input.ki.dwFlags = KEYEVENTF_KEYUP; // 按键抬起
5SendInput(1, &input, sizeof(INPUT));