SendInput vers un application SDL
Bonjour,
j'essaie de simuler des events du clavier (KeyDown, KeyUp), cependant ça ne semble pas fonctionner sous les application SDL.
Mon bout de code simule un keydown-keyup de la touche "z". Ca fonctionne pour Notepad, mais lorsque j'essaie avec VisualBoyAdvance (Emulateur GBA avec SDL), ça ne fonctionne que dans les menus et non dans la fenêtre SDL.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#include <Windows.h>
#include <iostream>
using namespace std;
int main()
{
bool bDone = false;
INPUT aiKeyDownUp[2];
BYTE wScanCode = MapVirtualKey( 0x5A, MAPVK_VK_TO_VSC);
ZeroMemory(aiKeyDownUp, sizeof(aiKeyDownUp));
for (int i=0; i<2; i++)
{
aiKeyDownUp[i].type = INPUT_KEYBOARD;
aiKeyDownUp[i].ki.wVk = 0x5A;
aiKeyDownUp[i].ki.wScan = wScanCode;
aiKeyDownUp[i].ki.dwFlags = i==1 ? 0 : KEYEVENTF_KEYUP | KEYEVENTF_SCANCODE;
aiKeyDownUp[i].ki.time = 0;
aiKeyDownUp[i].ki.dwExtraInfo = 0;
}
while(!bDone) {
SendInput(2, aiKeyDownUp, sizeof(INPUT));
Sleep(1000);
}
return 0;
} |