Seit einiger Zeit versuche ich Strg + Alt + Rechte Umschalttaste unter dem allgemeinen VBNET-Schlüsselhandler abzufangen. Hier sind meine Tests:
%Vor%Windows 7, WinForms, VB2008, NET Framework 2.0
Warum kann ich Strg + Alt + Rechte Umschalttaste in der beschriebenen Situation nicht abfangen?
Oder wie fange ich Strg + Alt + Kombination der rechten Umschalttaste ?
Es gibt keine Möglichkeit, Unterschiede zwischen Shifts mithilfe des standardmäßigen VB.NET-Ansatzes zu erkennen. Sie müssen dafür in Windows-API einhaken:
%Vor%Nun, das ist schwierig, da dies alles Modifier-Tasten sind und der Benutzer sie in beliebiger Reihenfolge drücken kann. Sie müssen eine Filterung durchführen, um sicherzustellen, dass ein 4. Tastendruck nicht erneut eine Übereinstimmung erzeugt, ein Problem mit der akzeptierten Antwort. Und die Rechts-Shift-Taste ist schwierig, wird beim Drücken als Keys.Shift gemeldet. Das erfordert Pin-Invoke, um zu prüfen, ob der Schlüssel gedrückt ist.
Das hat gut funktioniert:
%Vor%Dies funktioniert, indem zuerst überprüft wird, dass alle drei Modifier-Tasten nicht gedrückt sind. Dann prüft es, dass die letzte Taste gedrückt wurde eins der drei Schlüssel, die Filterung, die sicherstellt, dass Sie nicht zu viele Übereinstimmungen bekommen. Schließlich prüft es, ob die rechte Umschalttaste gedrückt ist und nicht, indem auch die linke Umschalttaste gedrückt wurde.
Tags und Links vb.net