Wie erstelle ich Tastaturereignisse in Python?
kurze Zusammenfassung:
Ich versuche, erstellen Sie ein Programm, das senden von Tastatur-events für die computer, die für alle Zwecke der simulierten Ereignisse behandelt werden sollten wie die eigentlichen Tastenanschläge auf der Tastatur.
original post:
Ich bin auf der Suche nach einer Möglichkeit zum generieren von Tastatur-events mit python.
Davon ausgehen, dass die Funktion erhält einen Schlüssel, Sie müssen simulieren Sie das drücken, etwa so:
keyboardevent('a') #lower case 'a'
keyboardevent('B') #upper case 'B'
keyboardevent('->') # right arrow key
def keyboardevent(key):
#code that simulated 'key' being pressed on keyboard
Die oben genannten sind natürlich Beispiele, aber was ich Suche ist eine Bibliothek, ein Modul, oder was auch immer, die ich simulieren kann Tastatur-Ereignisse.
Hinweis: Dies ist anders als das senden von Zeichen, Notizblöcke, oder die Eingabe von text in Felder oder so. Ich will das python-Skript zu simulieren eine tatsächliche Tastatur-Ereignis, wird der computer denken, dass es wirklich ein Tastatur-Ereignis.
Extra Hinweis:
Ich will nicht senden Sie Tastenanschläge an das aktive Fenster ist - ich möchte das system zu glauben, die Tastatur, die Tasten werden gedrückt, feiner Unterschied, wie etwas active-windows nicht akzeptieren, bestimmte Tastenkombinationen, oder wenn ich wollte, die Tastatur-shortcuts für die hintergrund-Prozesse, die über mein Skript, die Sie nicht brauchen, um durch zu gehen die aktiv-Fenster
Bisher habe ich sah diese Dinge:
Erzeugen Sie Tastatur-Ereignisse für die vorderste Anwendung
So erzeugen Sie Tastatur-Tastendruck-Ereignisse mithilfe von Python?
Waren alle über apple und überhaupt nicht hilfreich.
Und so:
Das ist der einfachste Weg, um zu simulieren, Tastatur und Maus auf Python?
Scheint, wie es sein könnte, was ich brauche, aber ich kann nicht finden die Bibliothek oder Dokumentation.
Den ich gesucht habe, mehr Plätze als gut, aber habe noch eine Lösung zu finden.
InformationsquelleAutor der Frage Inbar Rose | 2012-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es kann getan werden, mithilfe von ctypes:
hexKeyCode
ist die virtuelle Tastatur mapping-definiert durch die Windows-API. Die Liste der codes ist auf MSDN verfügbar: Virtual-Key Codes (Windows)InformationsquelleAutor der Antwort lucasg
Ich weiß, das ist eine alte Frage, aber es ist immer noch an der Spitze von google.
Sowohl für Python ist3 und python2 können Sie
pyautogui
(pip install pyautogui
)InformationsquelleAutor der Antwort CornSmith
user648852 Idee, die zumindest für mich funktioniert großartig für OS X, hier ist der code, es zu tun:
InformationsquelleAutor der Antwort Phylliida
Jede platform eine andere Herangehensweise zu haben, um in der Lage zu generieren Tastatur-Ereignisse. Dies ist, weil Sie jeder brauchen, um die Verwendung von system-Bibliotheken (und system-Erweiterungen). Für eine cross-Plattform-Lösung, die Sie brauchen würde, um all diese Lösungen und wickeln Sie dann in ein Plattform-check durchzuführen, der richtige Ansatz.
Für windows, Sie können möglicherweise verwenden Sie die pywin32 Erweiterung. win32api.keybd_event
Werden Sie brauchen, um zu untersuchen, pywin32 für, wie Sie richtig zu verwenden es, ich habe es nie benutzt.
InformationsquelleAutor der Antwort jdi
Nur Windows: können Sie entweder Ironpython oder eine Bibliothek ermöglicht cPython, um den Zugriff auf die .NET frameworks unter Windows. Dann verwenden Sie die sendkeys Klasse .NET oder allgemeineren senden simuliert einen Tastendruck.
Nur OS X: Verwenden PyObjC dann verwenden
CGEventCreateKeyboardEvent
nennen.Vollständige Offenlegung: ich habe nur getan, dieses auf OS X mit Python, aber ich verwendet habe .NET sendkeys (mit C#) und das funktioniert Super.
InformationsquelleAutor der Antwort
macOS
Hier ist die ausführlichere version von @Phylliida Antwort in form der Klasse mit code-Beispiel:
Ist hier der demo-code unter Verwendung der obigen Klasse:
dem simulieren der Eingabe
Hello World!
text auf das aktuelle Fenster.Können Sie führen Sie obigen code ein shell-Skript. Überprüfen Sie den link, um die
keyboard.py
- Datei.InformationsquelleAutor der Antwort kenorb
Für Python2.7(windows32 -) ich installiert, nur pywin32-223.
Und ich schrieb einfach python-code:
Es kann überprüft werden, wenn Sie den code ausführen, und sofort gehen Sie auf das Editor-Fenster (wo der text bereits vorhanden) und platzieren Sie den cursor auf die oberste Zeile.
InformationsquelleAutor der Antwort Олександр Добржанський