Ich habe diese C++ Funktion, die Virtual Key und Presse/Lassen Sie die Taste erhält:C++: Tastendruck simulieren und erhalten, wenn gedrückt unter Windows
void SendKey (WORD wVk, bool press) {
keybd_event(wVk, 0, press? 0 : KEYEVENTF_KEYUP, 0);
}
Aber es drücken Sie einfach die Taste 1 Mal, nicht ständig wie ich es erwartet hatte.
Ich bin Bau einer JoyPad Simulation, so, ich brauche jeweils KeyDown und KeyUp zu konfigurieren, das ein wenig C++ Prozess ist, der durch cmd der Schlüssel und die Art (Down, Drücken oder Release) lautet:
#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;
}
Vielen Dank, wenn jemand etwas ähnliches gebaut hat, bitte sagen Sie mir.
Sie lesen den Schlüssel nur einmal, dann überprüfen Sie, ob der Schlüssel d, r oder p .. ist. Was erwarten Sie? –
Hallo, dies ist ein Kind-Prozess, also werde ich Schlüssel über Standard-Ausgabe von einem NodeJS-Prozess simulieren, das ist, warum ich eine Endlosschleife habe, möchte ich nicht den Prozess schließen –