我正在尝试制作一个机器人玩超级马里奥世界,我下载了一个模拟器进行测试。我有一个输出键盘事件的基本设置,但它只能用于编写文本而游戏没有,或任何其他窗口,用于拾取事件。输出看起来像这个“cccccccccc”。这是该程序的原始输出。关于它为什么只写文本而不会触发真正的键盘笔划的任何想法?有更好的方法吗?
以下是我正在使用的代码。
#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;
}