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