-1
所以我有一个工作的按键模拟器。它每2秒按一次键“W”。我正在使用密钥“WASD”进行游戏测试,但是当我运行程序并运行游戏时,它不会移动我的角色?我必须身体推W键才能移动它。任何想法为什么?按键模拟游戏[C++]
这里是我的代码:
#include <iostream>
#define WINVER 0x0500
#include <windows.h>
class KeyBot {
private:
INPUT _buffer[1];
public:
KeyBot();
void KeyUp(char key);
void KeyDown(char key);
void KeyClick(char key);
};
KeyBot::KeyBot() {
_buffer->type = INPUT_KEYBOARD;
_buffer->ki.wScan = 0;
_buffer->ki.time = 0;
_buffer->ki.dwExtraInfo = 0;
}
void KeyBot::KeyUp(char key) {
_buffer->ki.wVk = key;
_buffer->ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, _buffer, sizeof(INPUT));
}
void KeyBot::KeyDown(char key) {
_buffer->ki.wVk = key;
_buffer->ki.dwFlags = 0;
SendInput(1, _buffer, sizeof(INPUT));
}
void KeyBot::KeyClick(char key) {
KeyDown(key);
Sleep(10);
KeyUp(key);
}
int main() {
KeyBot bot;
while (1) {
bot.KeyDown(0x57); //Press and hold 'W'
Sleep(2000); // Wait 2000 ms (2 seconds)
bot.KeyUp(0x37);
}
}
我们可能需要看到实际为您处理输入的代码... –
@AurelBílý你是什么意思?这是我拥有的唯一代码。 – thetester2
@AurelBílý我是否必须将该输入发送到游戏中才能使用?对不起,编程很新。 – thetester2