Fou-Lu
Lt. Junior Grade
- Registriert
- Aug. 2006
- Beiträge
- 290
Hallo cbler,
ich bin wirklich kurz vorm verrückt werden wegen der SendInput Methode.
Ich will damit Tastaturkürzel wie z.B. "Strg + Alt + Entf" oder einfach nur "Shift + Buchstabe" senden, aber irgendwie klappt es ganz und gar nicht!!
Mausklicks hab ich wunderbar zum laufen gebracht. Funktioniert wunderbar. Auch normale Tastatureingaben (also einzelne Tasten z.B. a, b, entf, enter, up, down, ...) funktionieren hervorragend. Aber sobald ich z.B. Shift + A sende, dann bleibt bei mir die Shifttaste aktiviert und egal was ich mach ich kann sie nicht deaktivieren (es sei den ich drücke sie direkt auf der Tastatur noch einmal).
Hier mal meine Methode:
Also wenn ich die Funktion so aufrufe, dann schaltet es zwar auf Großschreibung, aber es bleibt so zu sagen "hängen". Die Shift-Taste wird nicht mehr released. Erst wenn ich auf der Tastatur dann nochmals die Shift-Taste betätige.
Hoffe ihr könnt mir helfen. Bin echt am verzweifeln.
ich bin wirklich kurz vorm verrückt werden wegen der SendInput Methode.
Ich will damit Tastaturkürzel wie z.B. "Strg + Alt + Entf" oder einfach nur "Shift + Buchstabe" senden, aber irgendwie klappt es ganz und gar nicht!!
Mausklicks hab ich wunderbar zum laufen gebracht. Funktioniert wunderbar. Auch normale Tastatureingaben (also einzelne Tasten z.B. a, b, entf, enter, up, down, ...) funktionieren hervorragend. Aber sobald ich z.B. Shift + A sende, dann bleibt bei mir die Shifttaste aktiviert und egal was ich mach ich kann sie nicht deaktivieren (es sei den ich drücke sie direkt auf der Tastatur noch einmal).
Hier mal meine Methode:
PHP:
//Shift Down
INPUT shiftDown = new INPUT();
shiftDown.type = InputType.INPUT_KEYBOARD;
shiftDown.ki.wVk = (VKeys)KeyCodes["ShiftKey"]; //VKeys ist eine enumeration. ShiftKey entspricht dem Wert: 0x10
//Shift Up
INPUT shiftUp = new INPUT();
shiftUp.type = InputType.INPUT_KEYBOARD;
shiftUp.ki.wVk = (VKeys)KeyCodes["ShiftKey"];
shiftUp.ki.dwFlags = KEYEVENTF.KEYUP;
//Key Down
INPUT keyDown = new INPUT();
keyDown.type = InputType.INPUT_KEYBOARD;
keyDown.ki.wVk = keyCode; // ist die zusätzlich gedrückte Taste z.B. der Code 0x48 für H
//Key Up
INPUT keyUp = new INPUT();
keyUp.type = InputType.INPUT_KEYBOARD;
keyUp.ki.wVk = keyCode;
keyUp.ki.dwFlags = KEYEVENTF.KEYUP;
//SendInput
INPUT[] input = { shiftDown, keyDown, keyUp, shiftUp };
uint failure = SendInput(4, input, Marshal.SizeOf(new INPUT()));
Also wenn ich die Funktion so aufrufe, dann schaltet es zwar auf Großschreibung, aber es bleibt so zu sagen "hängen". Die Shift-Taste wird nicht mehr released. Erst wenn ich auf der Tastatur dann nochmals die Shift-Taste betätige.
Hoffe ihr könnt mir helfen. Bin echt am verzweifeln.