pywinauto UI Automation Windows GUI Automatisierung

Windows-GUI mit pywinauto und UI Automation automatisieren

Eine nützliche Bibliothek zur Automatisierung von Windows- und Software-Interface-GUIs ist Microsoft UI Automation (UIA). pywinauto stellt UI-Automatisierung als Bibliothek aus der Python-Sprache zur Verfügung und ermöglicht ähnliche Windows-Automatisierung.

Shou Arisaka
3 Min. Lesezeit
6. Okt. 2025

Eine nützliche Bibliothek zur Automatisierung von Windows- und Software-Interface-GUIs ist Microsoft UI Automation (UIA). pywinauto stellt UI-Automatisierung als Bibliothek aus der Python-Sprache zur Verfügung und ermöglicht ähnliche Windows-Automatisierung.

Github:

pywinauto/pywinauto: Windows GUI Automation with Python (based on text properties)

Dokumentation:

What is pywinauto — pywinauto 0.6.8 documentation

Wenn es um Windows-Automatisierung geht, kommt einem autohotkey in den Sinn, aber Autohotkey dient hauptsächlich der Tastatur- und Mausautomatisierung oder dem Hinzufügen von Hotkeys/Tastaturkürzeln und ist nicht für die detaillierte Automatisierung von gestarteter .NET-Framework-basierter Software oder grafischen Benutzeroberflächen geeignet.

In anderen Fällen wird VBA verwendet, wenn Sie Excel automatisieren, und für die Automatisierung von Browsern/Webseiten wie Chrome oder Firefox sind Bibliotheken wie selenium, puppeteer oder playwright geeignet.

Image

Installation

Wenn Python noch nicht installiert ist, verwenden Sie chocolatey, um Python zu installieren.

choco list --localonly
choco install python --version=3.6.7

Eine Übersicht darüber, was chocolatey ist und wie man es installiert, wird unten vorgestellt.

Chocolatey auf Windows 11 installieren

Installieren Sie virtualenv. Erstellen Sie dann eine virtuelle Umgebung mit virtualenv.

C:\Python36\python.exe -m pip install virtualenv
C:\Python36\python.exe -m virtualenv venv3.6

Betreten Sie die virtualenv-virtuelle Umgebung und installieren Sie die pywinauto-Bibliothek.

. .\venv3.6\Scripts\activate
pip install -U pywinauto

Ausführen von pywinauto

Beispielcode für pywinauto sieht so aus: Wenn Sie das folgende Python-Skript ausführen, wird notepad.exe (Editor) geöffnet und die Hilfeseite und die Info-Seite werden automatisch aus dem Menü geöffnet.

Beachten Sie, dass der folgende Code davon ausgeht, dass die Windows-Systemsprache Englisch ist. Wenn es sich um ein japanisches System handelt, müssen Sie möglicherweise “Help->About Notepad” oder ähnliches ändern.

from pywinauto.application import Application
app = Application().start("notepad.exe")

app.UntitledNotepad.menu_select("Help->About Notepad")
app.AboutNotepad.OK.click()
app.UntitledNotepad.Edit.type_keys("pywinauto Works!", with_spaces = True)

Fehler

Im Folgenden wird beschrieben, wie mit auftretenden Fehlern umgegangen wird.

Der folgende Fehler kann während der pywinauto-Ausführung auftreten:

_argtypes_ passes a union by value, which is unsupported

Die Ursache scheint zu sein, wenn die Python-Version 3.8 oder höher ist.

Als Lösung downgraden Sie die Python-Version auf 3.7.4 oder niedriger. In der obigen Installation haben wir Version 3.6.7 für die Python-Installation mit choco install python —version=3.6.7 angegeben. Es scheint zumindest mit 3.6.7 zu funktionieren.

downgrade python to 3.7.4

tkinter - Python Error - TypeError: item 1 in argtypes passes a union by value, which is unsupported - Stack Overflow

Referenzseiten:

Diesen Artikel teilen

Shou Arisaka 6. Okt. 2025

🔗 Links kopieren