Wie kann ich programmgesteuert Keypress-Ereignisse in C # generieren?
Wie kann ich programmatisch ein Ereignis erstellen, das würde die Simulation einer Taste auf der Tastatur gedrückt?
InformationsquelleAutor der Frage Dan Vogel | 2009-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Frage ist tagged WPF-aber die Antworten, die so weit sind, bestimmte WinForms und Win32.
Dazu in WPF einfach konstruieren, KeyEventArgs und rufen RaiseEvent auf das Ziel. Zum Beispiel, senden Sie eine Insert-Taste, KeyDown-Ereignis, um das aktuell fokussierte element:
Diese Lösung verlässt sich nicht auf native Anrufe oder Windows-Interna und sollte sehr viel zuverlässiger als die anderen. Es erlaubt Ihnen auch, um zu simulieren, ein Tastendruck auf ein bestimmtes element.
Beachten Sie, dass dieser code ist nur für PreviewKeyDown, KeyDown, PreviewKeyUp, und KeyUp-Ereignisse. Wenn Sie möchten, senden Sie die TextInput-Veranstaltungen Sie werden dazu statt:
Beachten Sie auch, dass:
Kontrollen zu erwarten-Vorschau
Veranstaltungen, z.B. PreviewKeyDown
vorausgehen sollte KeyDown
Verwendung von target.RaiseEvent(...) sendet das Ereignis direkt zum Ziel
ohne meta-Verarbeitung wie
Beschleuniger, text, Komposition und
IME. Dies ist normalerweise das, was Sie wollen.
Auf der anderen Seite, wenn Sie wirklich tun
was zu simulieren, die eigentliche Tastatur-Tasten
für einige Grund, Sie verwenden würden
InputManager.ProcessInput() statt.
InformationsquelleAutor der Antwort Ray Burns
Produzieren wichtige Ereignisse ohne Windows Forms-Kontext,
Wir können die folgende Methode verwenden,
Beispiel-code ist unten angegeben:
Liste mit den Virtuellen Tasten definiert sind hier.
Komplettes Bild, verwenden Sie bitte die folgenden link,
http://tksinghal.blogspot.in/2011/04/how-to-press-and-hold-keyboard-key.html
InformationsquelleAutor der Antwort Rajesh
Habe ich nicht verwendet, aber SendKeys tun können, was Sie wollen.
Microsoft hat einige weitere Anwendungsbeispiele hier.
InformationsquelleAutor der Antwort Michael Petrotta
Leicht!
(weil jemand anderes schon die Arbeit gemacht hat bei uns...)
Nach verbringen eine Menge Zeit damit, diese mit den vorgeschlagenen Antworten stieß ich auf diese codeplex-Projekt Windows-Simulator das machte es einfach, wie sein kann, um zu simulieren, eine Taste zu drücken:
Installieren Sie das Paket, getan werden kann oder aus dem NuGet-Paket-manager oder über die Paket-manager-Konsole wie:
Verwenden Sie diese 2 Zeilen code:
inputSimulator = new InputSimulator()
inputSimulator.Keyboard.KeyDown(VirtualKeyCode.RETURN)
Und das ist es!
InformationsquelleAutor der Antwort Ravid Goldenberg
Windows SendMessage-API mit senden WM_KEYDOWN.
InformationsquelleAutor der Antwort np-hard