模拟左键点击时黑屏

Screen blacks out when simulating left click

我正在学习如何使用 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);
        }
    }
}

模拟按键时也没有发生。

在行 INPUT ip; 之后添加 ZeroMemory(&ip, sizeof(ip)); 将解决您的问题。