我正在学习如何使用SendInput(),我遇到了一个问题。每当我尝试模拟左键单击时,屏幕总是变黑。这是我的代码:
#include <Windows.h>
void MouseLeftClick(){
INPUT ip;
ip.type = INPUT_MOUSE;
ip.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, &ip, sizeof(INPUT));
ip.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &ip, sizeof(INPUT));
}
void PressKey(int keyCode){
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wVk = keyCode;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
int main(){
while (true){
if (GetAsyncKeyState(VK_END)){
MouseLeftClick();
Sleep(1000);
}
}
}
当我模拟按键时,也不会发生这种情况。
答案 0 :(得分:1)
在ZeroMemory(&ip, sizeof(ip));
行之后添加INPUT ip;
将解决您的问题。