Beide Antworten hier sind falsch. Ich verstehe nicht, warum Menschen für falsche Antworten stimmen?
Beide Antworten deuten darauf hin, dass die Flagge nicht relevant ist.Das ist völlig falsch. Und die Flagge hat nichts mit der Tastatur zu tun.
Die richtige Antwort ist, dass es nur Scan-Codes von 01 bis 7F aber virtuelle Tasten reicht von 01 bis FF.
So wie Tastaturen wuchs wurde es notwendig, dass einige Scan-Codes doppelte Zuordnung haben. Zum Beispiel auf meiner Tastatur ist der Scan-Code 0x45 der NumLock-Taste UND der Pause-Taste zugeordnet.
ihnen die keyborard Zur Unterscheidung sendet den Extended Key-Flag für die NumLock-Taste, aber nicht für die Pause-Taste.
Es gibt mehrere andere Schlüssel, die eine doppelte Zuweisung haben, wie zum Beispiel alle Medientasten.
Run Spy ++, die nur WM_KEYDOWN mit den Visual Studio-Tools und Filter kommt und aktivieren Sie „Decoded Nachrichtenparameter“ dann drücken Sie einige Tasten in einem Texteditor.
Spy ++ werden Sie für die Tasten zeigen das Flag gesetzt ist und für welche Tasten er nicht gesetzt ist.
Hier die Ausgabe von Spy ++:
P WM_KEYDOWN nVirtKey:VK_NUMLOCK cRepeat:1 ScanCode:45 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
P WM_KEYDOWN nVirtKey:VK_PAUSE cRepeat:1 ScanCode:45 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
Ein anderes Beispiel ist der Scan-Code 2E, die mit dem Buchstaben "C" zugeordnet ist, und auf meiner Tastatur VK_VOLUME_DOWN.
Sie müssen es genau auf die gleiche Weise programmieren, sonst schlägt die Tastatureinspeisung mit keybd_event()
fehl, weil ein anderer Schlüssel als der gewünschte gedrückt wird.
Do NICHT Vertrauen in MapVirtualKeyEx(MAPVK_VK_TO_VSC_EX)
(> = Vista), weil es nicht die erweiterte Flagge für einige Schlüssel zurückgibt, obwohl sie Tasten erweitert werden, wie VK_LEFT zum Beispiel. Ein weiterer Fehler in dieser Funktion besteht darin, dass das erweiterte Flag (E1) für den VK_PAUSE-Schlüssel zurückgegeben wird, obwohl dieser Schlüssel nicht erweitert wird.
Vielen Dank für diese großartige Erklärung. Jetzt ist es mir klarer. Wo bekomme ich die komplette Erklärung für EXTENDEDKEY, gibt es einen Artikel? – mgulan
Diese Antwort ist falsch. Ich verstehe nicht, warum Leute für eine Antwort stimmen, die völlig falsch ist? Die erweiterte Flagge hat absolut nichts mit der Tastatur zu tun. Die einzigen Tasten auf der Tastatur, die dieses Flag benötigen, sind VK_DIVIDE und VK_NUMLOCK. Auf der anderen Seite gibt es andere Schlüssel, die dieses Flag benötigen und absolut nichts mit der Tastatur zu tun haben, wie VK_LWIN oder VK_RIGHT oder VK_VOLUME_DOWN. Siehe meine Antwort hier. – Elmue
Es gibt einen Mangel an dieser Antwort. Dies steht nicht im Zusammenhang mit dem numerischen Tastenfeld an sich. [Lesen Sie hier] (https://msdn.microsoft.com/en-us/library/ms646267%28v=vs.85%29.aspx) oder mein Kommentar unter – Carol