Mit Python ist es relativ einfach, "Dateien" wie Excel und "Apps" wie Webbrowser direkt zu bedienen.
Möchten Sie jemals Mausoperationen und Tastatureingaben automatisieren? Sie können das denken.
Es gibt viele Apps und Software auf der Welt. Wenn Sie freie Software einbinden, gibt es so viele Sterne wie es gibt. Wie erwartet unterstützt Python nicht alle diese Apps. Es gibt viele Apps **, die nicht direkt mit Python betrieben werden können.
Wenn Sie die Arbeit in einer solchen App automatisieren möchten, können Sie dies tun, indem Sie ** Maus- und Tastaturoperationen automatisieren **.
Wenn Menschen Apps bedienen, arbeiten sie zunächst mit Maus und Tastatur. Wenn Sie also Maus und Tastatur mit Python bedienen können, sollten Sie theoretisch (wahrscheinlich) alles automatisch bedienen können.
In diesem Artikel werde ich Ihnen zeigen, wie Sie Maus und Tastatur in Python bedienen.
Verwenden Sie zum Bedienen von Maus und Tastatur in Python eine Bibliothek mit dem Namen ** PyAutoGUI **.
pyautogui sollte nicht standardmäßig in Anaconda installiert werden. Installieren wir es also zuerst mit dem Befehl pip.
pip install pyautogui
Wenn Sie es erfolgreich installieren können, importieren Sie es.
python
import pyautogui
Klicken Sie mit der linken Maustaste auf "pyautogui.click ()".
Zu diesem Zeitpunkt stellt sich die Frage, wo geklickt werden soll. Sie können die Klickposition jedoch mit den folgenden drei Mustern angeben.
Funktion | Erläuterung |
---|---|
pyautogui.click() | Aktuelle MauszeigerpositionKlicken |
pyautogui.click(x, y) | Koordinaten auf dem Monitor(x, y)Position vonKlicken |
pyautogui.click('button.png') | Bild der Schaltfläche, auf die Sie klicken möchtenGeben Sie an und klicken Sie dort |
Ich werde im Detail erklären.
pyautogui.click()
Klicken Sie auf die aktuelle Mauszeigerposition. Verwenden Sie in diesem Fall die Befehle "pyautogui.moveTo ()" und "pyautogui.move ()", um den Mauscursor, der später beschrieben wird, zuerst an die gewünschte Position und dann "pyautogui.click ()" zu bewegen. Ich denke, es wird.
python
# (100, 200)Bewegen Sie den Mauszeiger an die Position von
pyautogui.moveTo(100,200)
#klicken
pyautogui.click()
pyautogui.click(x, y)
Klicken Sie auf die Position der Koordinaten (x, y) auf dem Monitor. Was sind diese Koordinaten (x, y)? Wenn Ihr Monitor beispielsweise eine Auflösung von 1920 x 1080 hat, ist oben links (0,0) und unten rechts (1919, 1079).
0,0 X increases -->
+---------------------------+
| | Y increases
| | |
| 1920 x 1080 screen | |
| | V
| |
| |
+---------------------------+ 1919, 1079
(Nachdruck aus dem offiziellen Dokument von PyAutoGui<https://pyautogui.readthedocs.io/en/latest/mouse.html>)
Da können Sie die Koordinaten des aktuellen Mauszeigers mit pyautogui.position ()
abrufen
Es ist einfach, die Koordinaten zu überprüfen, indem Sie die Maus an die Position bewegen, auf die Sie klicken möchten, und pyautogui.position ()
ausführen.
python
#Überprüfen Sie die Koordinaten der Position, auf die Sie klicken möchten
print(pyautogui.position())
Ausführungsergebnis
Point(x=207, y=528)
python
#Klicken Sie auf die oben angegebenen Koordinaten
pyautogui.click(207, 528)
pyautogui.click('button.png')
Geben Sie das Bild der Schaltfläche an, auf die Sie klicken möchten ('button.png'), und klicken Sie darauf. Abhängig von der Größe und Position des App-Fensters sind die Koordinaten des Ortes, auf den Sie klicken möchten, möglicherweise nicht immer gleich.
In einem solchen Fall können Sie direkt auf die Position klicken, indem Sie ** das Bild des Ortes (Schaltfläche usw.) angeben, auf den Sie klicken möchten **.
Angenommen, Sie möchten in der Windows-App "Paint" auf die Zahl ** "☆" ** klicken.
Schneiden Sie in diesem Fall den Teil ☆ als Bild aus ('star.png').
python
#Klicken Sie auf den Teil ☆
pyautogui.click('star.png')
Die Methode zum Angeben dieses Bildes ist sehr praktisch, aber in einigen Fällen wird die Position des Bildes möglicherweise nicht erkannt. Es sollte beachtet werden, dass es nicht in 100 Aufnahmen ist.
pyautogui.click ()
war ein normaler ** Linksklick **.
Wenn Sie einen weiteren Klick ausführen möchten, z. B. Rechtsklick oder Doppelklick, ersetzen Sie ihn durch die entsprechende Funktion (siehe unten).
Klicken Sie auf Typ | Funktion |
---|---|
Rechtsklick | pyautogui.rightClick() |
Mittelklick(Radklick) | pyautogui.middleClick() |
Doppelklick | pyautogui.doubleClick() |
Es gibt zwei Arten von Mauszeigerbewegungen. Der Unterschied besteht darin, ob das Ziel als absolute Position oder als relative Position angegeben wird.
Funktion | Erläuterung |
---|---|
pyautogui.moveTo(x,y) | Koordinaten auf dem Monitor(x,y)Geben Sie an und verschieben Sie sich dorthin |
pyautogui.move(x,y) | X seitlich von der aktuellen Position,Bewegen Sie y vertikal |
pyautogui.moveTo(x,y) Geben Sie die Koordinaten (x, y) auf dem Monitor an und bewegen Sie sich dorthin. Es ist egal, wo du bist.
Sie können auch ** Zeit zum Verschieben ** als drittes Argument von moveTo ()
angeben.
Wenn Sie keine Zeit angeben, wird diese sofort verschoben. Sie können sich jedoch langsam bewegen, indem Sie diese Zeit angeben.
python
# (100,100)In Position bewegen
pyautogui.moveTo(100,100)
# (100,100)Bewegen Sie sich in die Position von
pyautogui.moveTo(100,100,2)
pyautogui.move(x,y)
Verschiebt x horizontal und y vertikal von der aktuellen Mauszeigerposition.
move ()
kann auch die Zeit zum Verschieben angeben.
python
#Von der aktuellen Position(100,100)Beweg dich einfach
pyautogui.move(100,100)
#Von der aktuellen Position(100,100)Bewegen Sie sich einfach über 2 Sekunden
pyautogui.move(100,100,2)
Es gibt zwei Arten des Ziehens, je nachdem, ob es sich um die absolute Position oder die relative Position des Ziels handelt. Zum Ziehen können Sie im dritten Argument auch ** Zeit zum Ziehen ** angeben.
Funktion | Erläuterung |
---|---|
pyautogui.dragTo(x,y) | Koordinaten auf dem Monitor von der aktuellen Position(x,y)Hin ziehen |
pyautogui.drag(x,y) | X seitlich von der aktuellen Position,Ziehen Sie y vertikal |
python
#Von der aktuellen Position(100,100)Ziehen Sie an die Position von
pyautogui.dragTo(100,100,2)
Verwenden Sie pyautogui.write ()
, um Zeichen über die Tastatur einzugeben.
Klicken Sie auf das Textfeld usw., in das Sie einmal Zeichen eingeben möchten.
Ich denke, Sie müssen den Zeichencursor aktivieren und dann pyautogui.write ()
ausführen.
python
#Klicken Sie auf die Stelle, an der Sie Zeichen eingeben möchten
pyautogui.click(100, 100)
#Zeicheneingabe
pyautogui.write('Hello world!')
Wenn Sie aus irgendeinem Grund nicht mit einer sehr hohen Geschwindigkeit eingeben möchten, können Sie die Anzahl der Sekunden zwischen den Zeicheneingaben mit "Intervall = xx" als Argument angeben, um Platz zwischen den Zeicheneingaben zu lassen.
python
#0 für jedes Zeichen.Eingabe in Intervallen von 25 Sekunden
pyautogui.write('Hello world!', interval=0.25)
Bitte beachten Sie, dass diese Methode ** kein Japanisch eingeben kann **! Wenn Sie also Japanisch eingeben möchten, verwenden Sie eine andere Methode.
Die Methode lautet ** Kopieren Sie die Zeichenfolge, die Sie eingeben möchten, und fügen Sie sie in die Zwischenablage ein. ** ** **
Verwenden Sie ** pyperclip **, um die Zwischenablage zu bearbeiten. Weiter unten finden Sie Details zur Verwendung von Pyperclip. Hier werde ich jedoch nur den Code beschreiben.
[Automatisierung] Bedienen Sie die Zwischenablage mit Python und fügen Sie die Tabelle in Excel ein https://qiita.com/konitech913/items/83975332e395a387eace
python
import pyperclip
#Kopieren Sie die eingegebene Zeichenfolge in die Zwischenablage
pyperclip.copy('Hallo Welt!')
# Ctrl+Einfügen mit v
pyautogui.hotkey('ctrl', 'v')
Verwenden Sie pyautogui.press ()
, wenn Sie nur eine Taste drücken möchten, anstatt zu tippen.
python
#Drücken Sie die "Eingabetaste"
pyautogui.press('enter')
#Drücken Sie viermal die "linke Cursortaste"
pyautogui.press(['left', 'left', 'left', 'left'])
Verwenden Sie für ** Hotkeys ** wie "Strg + C (Einfügen)" und "Strg + Z (Rückgängig)" "pyautogui.hotkey ()".
python
# 「Ctrl+Z(Rückgängig machen)」
pyautogui.hotkey('ctrl', 'z')
Lassen Sie uns abschließend das bisherige Wissen nutzen, um mit der "Farbe" zu zeichnen, die mit Windows geliefert wird.
Ändern Sie die Größe der ☆-Zahl, stapeln Sie 5 davon und geben Sie schließlich den Text ein.
python
#Erfassen Sie zuerst die Koordinaten
print(pyautogui.position()) #Wo Sie den Text einfügen möchten
print(pyautogui.position()) #☆ Startposition ziehen
Ausführungsergebnis
Point(x=300, y=285)
Point(x=476, y=566)
Sobald Sie die Koordinaten kennen, ist es Zeit, mit dem Zeichnen zu beginnen.
python
import pyautogui
import pyperclip
#Klicken Sie einmal, um das Malfenster zu aktivieren
pyautogui.click(732,22)
text_x=300
text_y=285
star_x=476
star_y=566
#☆ Zeichnung
stride = 50 #Erhöhen Sie ☆ mit einem Schritt
star_num = 5 #Anzahl von ☆
pyautogui.click('star.png')
#☆ starten_Zeichne so viele wie num
for i in range(star_num):
pyautogui.moveTo(star_x-stride*i, star_y-stride*i, 1)
pyautogui.drag(50+stride*i*2, 50+stride*i*2, 1)
#Text eingeben
pyautogui.click('text.png')
pyautogui.click(text_x, text_y)
pyperclip.copy('Es ist wie ein Stern Matroschka ...') #Kopieren Sie Japanisch einmal in die Zwischenablage
pyautogui.hotkey('ctrl', 'v') #Einfügen
** Ausführungsergebnis **
Wie war es? Wenn Sie Pyautogui beherrschen, scheint die Anwendung für die Automatisierung verschiedener Anwendungen effektiv zu sein.
Hier sind die anderen Automatisierungsserien, die ich geschrieben habe. Bei Interesse bitte!
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python https://qiita.com/konitech913/items/4ef70e1f7753c824b40f
[Automatisierung] Lesen Sie Word-Dokumente mit Python https://qiita.com/konitech913/items/c30236bdf47775535e2f
[Automatisierung] Konvertieren Sie Python-Code in eine exe-Datei https://qiita.com/konitech913/items/6259f13e057bc25ebc23
[Automatisierung] Senden Sie Outlook-E-Mails mit Python https://qiita.com/konitech913/items/51867dbe24a2a4272bb6
[Automatisierung] Lesen Sie Outlook-E-Mails mit Python https://qiita.com/konitech913/items/8a285522b0c118d5f905
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python https://qiita.com/konitech913/items/fa0cf66aad27d16258c0
[Automatisierung] Bedienen Sie die Zwischenablage mit Python und fügen Sie die Tabelle in Excel ein https://qiita.com/konitech913/items/83975332e395a387eace
Recommended Posts