Frage

Ist es möglich, sie auf ein System erscheinen, dass eine Taste gedrückt wurde, zum Beispiel muss ich machen A -Taste gedrückt tausende Male werden, und es ist viel zu zeitaufwendig, es zu tun manuell würde ich mag, etwas schreiben es für mich zu tun, und das einzige, was ich weiß gut genug Python ist.

Eine bessere Möglichkeit, es zu setzen, ich brauche einen Tastendruck zu emulieren, I.E. kein Tastendruck erfassen.

Weitere Informationen (wie gewünscht): Ich bin mit Windows XP und muß die Schlüssel zu einer anderen Anwendung senden.

War es hilfreich?

Lösung

Installieren Sie die pywin32 Erweiterungen. Dann können Sie wie folgt vor:

import win32com.client as comclt
wsh= comclt.Dispatch("WScript.Shell")
wsh.AppActivate("Notepad") # select another application
wsh.SendKeys("a") # send the keys you want

Suchen Sie nach Dokumentation des WScript.Shell Objekts (I standardmäßig in allen Windows XP-Installationen installiert glauben). Sie können beginnen hier vielleicht.

EDIT: Senden F11

import win32com.client as comctl
wsh = comctl.Dispatch("WScript.Shell")

# Google Chrome window title
wsh.AppActivate("icanhazip.com")
wsh.SendKeys("{F11}")

Andere Tipps

Sie können auch PyAutoGui verwenden eine virtuelle Taste drückt senden.

Hier ist die Dokumentation: https://pyautogui.readthedocs.org/en/latest/

import pyautogui


pyautogui.press('Any key combination')

Sie können auch Tasten wie die Shift-Taste oder Enter-Taste senden mit:

import pyautogui

pyautogui.press('shift')

Pyautogui kann auch direkt Text wie so senden:

import pyautogui

pyautogui.typewrite('any text you want to type')

Wie zum Drücken der Taste „A“ 1000-mal, es wie folgt aussehen würde:

import pyautogui

for i in range(999):
    pyautogui.press("a")

Alt-Tab oder andere Aufgaben, die mehr als ein Schlüssel erfordert gleichzeitig gedrückt werden:

import pyautogui

# Holds down the alt key
pyautogui.keyDown("alt")

# Presses the tab key once
pyautogui.press("tab")

# Lets go of the alt key
pyautogui.keyUp("alt")

AutoHotKey ist perfekt für diese Art von Aufgaben (Tastatur Automatisierung / Remapping)

Script "A" 100-mal an:

Send {A 100}

Das ist alles

Bearbeiten : die Schlüssel zu einer bestimmten Anwendung senden:

WinActivate Word
Send {A 100}

Aktivieren Sie dieses Modul Tastatur mit vielen features.Install es, vielleicht mit diesem Befehl:

pip3 install keyboard

Dann diesen Code verwenden:

import keyboard
keyboard.write('A',delay=0)

Wenn Sie schreiben wollen ‚A‘ mehrmals verwenden Sie dann einfach eine Schleife.
Hinweis :
 Der Schlüssel ‚A‘ wird für die gesamte gedrückt werden windows.Means das Skript ausgeführt wird, und Sie ging nach Browser, wird das Skript starten dort zu schreiben.

Wenn Sie Windows-Plattform ist, würde ich nicht wirklich Python empfehlen. Stattdessen schauen Sie in Autohotkey . Vertrauen Sie mich, ich lieben Python, aber unter diesen Umständen ein Makro-Programm ist das ideale Werkzeug für den Job. Autohotkey das Scripting ist nur anständig (meiner Meinung nach), aber die Leichtigkeit der Simulation Eingang finden Sie unzählige Stunden sparen. Autohotkey Skripte kann „kompiliert“ wird auch so müssen Sie den Interpreter nicht um das Skript auszuführen.

Auch wenn dies für etwas im Web, empfehle ich iMacros . Es ist eine Firefox-Plugin und hat daher eine viel bessere Integration mit Websites. Zum Beispiel können Sie sagen: „‚a ist in dieser Form statt ‚einen Mausklick an (319.400) simulieren und drücken Sie dann schreiben 1000‘ ‚a‘ 1000-mal“.

Für Linux, habe ich leider nicht in der Lage gewesen, eine gute Art und Weise zu finden, leicht Tastatur / Maus-Makros zu erstellen.

Alternative Art und Weise einstellen Fenster in den Vordergrund bevorzugen vor Tastendruckereignis senden.

hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top