uhmmm...
Die is niet nodig voor het programma waar naar ik mijn keys wil versturen. De code
void initiateProcess::pressKey(short code){
HWND hNotepad = FindWindow(0, L"Naamloos - Kladblok");
if(!hNotepad){
QMessageBox iWindow;
iWindow.setWindowTitle("Window not found");
iWindow.setText("The window was not found");
iWindow.exec();
}
SetForegroundWindow(hNotepad);
short vkCode = LOBYTE(VkKeyScan(code));
extraKeyInfo lParam = {};
lParam.scanCode = MapVirtualKey(vkCode, 29);
PostMessage(hNotepad, WM_KEYDOWN, vkCode, lParam);
lParam.repeatCount = 1;
lParam.prevKeyState = true;
lParam.transitionState = true;
PostMessage(hNotepad, WM_KEYUP, vkCode, lParam);
Sleep(100);
} is het enigste wat nodig is.
Want ik heb het getest met dit:
struct extraKeyInfo
{
unsigned short repeatCount;
unsigned char scanCode;
bool extendedKey, prevKeyState, transitionState;
operator unsigned int()
{
return repeatCount | (scanCode << 16) | (extendedKey << 24) |
(prevKeyState << 30) | (transitionState << 31);
}
};
void pressKey( short code )
{
HWND hNotepad = FindWindow(0, L"FINAL FANTASY XIV");
if(!hNotepad){ std::cout << "Window not found"; }
SetForegroundWindow(hNotepad);
short vkCode = LOBYTE(VkKeyScan(code));
extraKeyInfo lParam = {};
lParam.scanCode = MapVirtualKey(vkCode, 29);
PostMessage(hNotepad, WM_KEYDOWN, vkCode, lParam);
lParam.repeatCount = 1;
lParam.prevKeyState = true;
lParam.transitionState = true;
PostMessage(hNotepad, WM_KEYUP, vkCode, lParam);
Sleep(100);
}
int main()
{
pressKey( VK_SPACE );
pressKey( 'h' );
pressKey( 'e' );
pressKey( 'l' );
pressKey( 'l' );
pressKey( 'o' );
pressKey( VK_RETURN );
return 0;
}
en dat werkt perfect, alleen wanneer ik het dan in mijn GUI wil hebben werkt het niet meer

Weet je wat, ik zal eens van nul af aan opnieuw beginnen vanavond / morgen. Misschien dat er dan
meer duidelijkheid komt. Ik zal dan ook even hier weer opnieuw reageren met betere / meer informatie.