C++ C++;输出窗口赢得';不要用键盘输入

C++ C++;输出窗口赢得';不要用键盘输入,c++,keyboard,output,C++,Keyboard,Output,我正试图让一个机器人玩超级马里奥世界,我下载了一个模拟器进行测试。我有一个基本的设置来输出键盘事件,但它只适用于写文本,而游戏或任何其他窗口都不会拾取事件。输出看起来像这个“CCCC”。这是程序的原始输出。你知道为什么它只写文本而不会触发真正的键盘笔划吗?有更好的方法吗 这是我正在使用的代码 #include <Windows.h> #include <Winuser.h> #include <string> // Virtual key press han

我正试图让一个机器人玩超级马里奥世界,我下载了一个模拟器进行测试。我有一个基本的设置来输出键盘事件,但它只适用于写文本,而游戏或任何其他窗口都不会拾取事件。输出看起来像这个“CCCC”。这是程序的原始输出。你知道为什么它只写文本而不会触发真正的键盘笔划吗?有更好的方法吗

这是我正在使用的代码

#include <Windows.h>
#include <Winuser.h>
#include <string>

// Virtual key press handler
void pressKey(string key, INPUT vir){
    char temp = key[0];
    vir.ki.wScan = temp;
    SendInput(1, &vir, sizeof(INPUT));
}

int main(){
    // Initialize the virtual keyboard.
    INPUT vir;
    vir.type = INPUT_KEYBOARD;
    vir.ki.time = 0;
    vir.ki.dwFlags = KEYEVENTF_UNICODE;
    vir.ki.wVk = 0;
    vir.ki.wScan = 0;
    vir.ki.dwExtraInfo = 0;

    // Sleep for 5 seconds then jump every second for 10 jumps.
    Sleep(5000);
    for (int i = 0; i < 10; i++){
        pressKey("c", vir);
        Sleep(1000);
    }

    return 0;
}
#包括
#包括
#包括
//虚拟按键处理程序
无效按键(字符串键,输入病毒){
字符温度=键[0];
vir.ki.wScan=温度;
SendInput(1,&vir,sizeof(INPUT));
}
int main(){
//初始化虚拟键盘。
输入病毒;
vir.type=输入\键盘;
vir.ki.time=0;
vir.ki.dwFlags=KEYEVENTF_UNICODE;
vir.ki.wVk=0;
vir.ki.wScan=0;
vir.ki.dwextranfo=0;
//睡眠5秒钟,然后每秒跳跃10次。
睡眠(5000);
对于(int i=0;i<10;i++){
按键(“c”,vir);
睡眠(1000);
}
返回0;
}

您是如何运行的?我运行的是一个win32控制台应用程序,并单击希望它在其上运行键盘事件的窗口。假设仿真器正在从stdin读取数据,您需要将输出从bot传输到仿真器,即。