Hoi hoi
Ik probeer toetsenbordknopjes te simuleren in C++, zodat ik ze via mijn G27 kan benaderen. Het scriptje wat ik schrijf draait in GTA V via ScriptHookV en kan gewoon alles wat een ander programma ook kan, dus ik kan prima system calls uitvoeren en apparaten/hardware bereiken.
Het volgende draait in een loopje:
Dit werkt prima. Als ik in mijn .ini knup 18 aan "E" bind, kan ik toeteren als een gek. Echter, wanneer een andere mod draait waarbij daar een functie aan "E" is verbonden, werkt deze [de andere mod functie] niet. Idem met andere knopkombinaties. De game leest alles graag uit.
Uit Microsoft's documentatie kan ik weinig halen:
MSDN: KEYBDINPUT structure (Windows)
MSDN: SendInput function (Windows)
Iemand een idee waar ik de mist in ga? Ik denk dat mijn script dus naar GTA V dat stuurt, en niet echt iets doet als een "E" in rammen zodat álle applicaties die draaien dit zien. Grappig genoeg werken shortcuts voor de Steam Overlay wel prima.
Ik probeer toetsenbordknopjes te simuleren in C++, zodat ik ze via mijn G27 kan benaderen. Het scriptje wat ik schrijf draait in GTA V via ScriptHookV en kan gewoon alles wat een ander programma ook kan, dus ik kan prima system calls uitvoeren en apparaten/hardware bereiken.
Het volgende draait in een loopje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| for (int i = 0; i < MAX_RGBBUTTONS; i++) { if (WheelToKey[i] != -1) { INPUT input; input.type = INPUT_KEYBOARD; input.ki.dwExtraInfo = 0; input.ki.wVk = 0; input.ki.wScan = MapVirtualKey(WheelToKey[i], 0); if (WheelDI.IsButtonJustPressed(i)) { input.ki.dwFlags = 0; SendInput(1, &input, sizeof(INPUT)); } if (WheelDI.IsButtonJustReleased(i)) { input.ki.dwFlags = KEYEVENTF_KEYUP; SendInput(1, &input, sizeof(INPUT)); } } } |
Dit werkt prima. Als ik in mijn .ini knup 18 aan "E" bind, kan ik toeteren als een gek. Echter, wanneer een andere mod draait waarbij daar een functie aan "E" is verbonden, werkt deze [de andere mod functie] niet. Idem met andere knopkombinaties. De game leest alles graag uit.
Uit Microsoft's documentatie kan ik weinig halen:
MSDN: KEYBDINPUT structure (Windows)
MSDN: SendInput function (Windows)
Iemand een idee waar ik de mist in ga? Ik denk dat mijn script dus naar GTA V dat stuurt, en niet echt iets doet als een "E" in rammen zodat álle applicaties die draaien dit zien. Grappig genoeg werken shortcuts voor de Steam Overlay wel prima.