Ich habe die folgenden Beispiele in C++, das erste funktioniert wie erwartet das zweite nicht. Ich merke auch, dass die Windows-Systemtastatur das gleiche Problem hat. Jeder weiß warum oder eine bessere Lösung dafür?Warum funktionieren einige meiner Tastaturereignisse und andere nicht?
keybd_event(VK_LWIN,0x5b,0 , 0); /* Windows Key Press */
keybd_event(VkKeyScan('l'), 0, 0, 0); /* L key Press */
keybd_event(VkKeyScan('l'), 0, KEYEVENTF_KEYUP,0); /* L key Release */
keybd_event(VK_LWIN,0x5b,KEYEVENTF_KEYUP,0); /* Windows Key Release */
Dieses versagt:
keybd_event(VK_CONTROL,0x11,0 , 0); /* Control Key Press */
keybd_event(VK_MENU,0xb8, 0, 0); /* Alt Press */
keybd_event(VK_DELETE,0x2e, 0, 0); /* Del Press */
keybd_event(VK_DELETE,0x2e, KEYEVENTF_KEYUP,0); /* Del Release */
keybd_event(VK_MENU,0xb8, KEYEVENTF_KEYUP,0); /* Alt Release */
keybd_event(VK_CONTROL,0x11,KEYEVENTF_KEYUP,0); /* Control Key Release */
Die gleiche 'Win + L' Tastenkombination, wenn sie über Dragon NaturallySpeaking Advanced Scripting Code gesendet wird, hat das gleiche Problem - es funktioniert nicht, aber Befehle mit anderen Schlüsseln als L. Ihre Theorie, dass sie durch das Betriebssystem geschützt ist, scheint mir zu gelten. – kevinmicke