我有 C ++ 函数接收虚拟密钥并按下/释放密钥:
void SendKey (WORD wVk, bool press) {
keybd_event(wVk, 0, press? 0 : KEYEVENTF_KEYUP, 0);
}
但它只按键1次,而不是像我预期的那样。
我正在构建一个JoyPad模拟,因此,我需要分别配置KeyDown和KeyUp,这是一个 C ++ 进程,它通过 cmd 读取密钥和类型(向下,按或发布):
#define WINVER 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
void SendKey (WORD wVk, bool press) {
keybd_event(wVk, 0, press? 0 : KEYEVENTF_KEYUP, 0);
}
void PressKey (WORD wVk) {
SendKey(wVk, true);
Sleep(30);
SendKey(wVk, false);
}
int main() {
int key;
char type;
while(true) {
cin >> key;
cin >> type;
if(key == 0) break;
if(type == 'd') SendKey((WORD) key, true);
if(type == 'r') SendKey((WORD) key, false);
if(type == 'p') PressKey((WORD) key);
}
return 0;
}
非常感谢,如果有人建造了类似的东西,请告诉我。
答案 0 :(得分:0)
你将不得不为你想要的每个重复重复发送一个关键事件,这不会自动发生。就像真正的键盘驱动程序在初始延迟后发送重复的键事件一样。