UI-Automatisierung mit Python

Versuchen Sie, mithilfe der UI-Automatisierung Windows-GUI-Vorgänge mit Python zu automatisieren. Es gibt eine .NET-Version und eine COM-Version von UI Automation, aber ich möchte sie von CPython aus verwenden. Verwenden Sie daher die COM-Version. Vorerst habe ich überprüft, wie ich es nennen soll, also mach dir eine Notiz.

Was ist UI-Automatisierung?

Empfehlungen zur UI-Automatisierung http://blogs.msdn.com/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2011/05/26/ui-automation.aspx

UI Automation http://msdn.microsoft.com/en-us/library/ee684009.aspx

Vorbereitung

Setzen Sie zuerst comtypes in pip,

pip install comtypes

Generieren Sie als Nächstes einen Wrapper für die UI-Automatisierung.

import comtypes
from comtypes.client import GetModule
GetModule('UIAutomationCore.dll')

Ein Wrapper-Modul wird in Lib \ site-packages \ comtypes \ gen erstellt. Vergleichen Sie anschließend die MSDN-Referenz von UI Automation mit _944DE083_8FB8_45CF_BCB7_C477ACB2F897_0_1_0.py, um herauszufinden, wie Sie sie verwenden können. (Der Dateiname kann je nach Umgebung unterschiedlich sein.)

UI-Automatisierungsobjekt abrufen

Importieren Sie comtypes.gen.UIAutomationClient, um ein UI-Automatisierungsobjekt abzurufen und dies und das zu tun.

from comtypes.gen.UIAutomationClient import *
uia = CoCreateInstance(CUIAutomation._reg_clsid_,interface=IUIAutomation,clsctx=CLSCTX_INPROC_SERVER)

re = uia.GetRootElement()  #Holen Sie sich das oberste Element des Desktops
print re.CurrentName       # 'Desktop'

Taschenrechner Beispiel

Versuchen Sie, über die UI-Automatisierung auf den Rechner (calc.exe) zuzugreifen. Weiter von oben.

import subprocess
calc = subprocess.Popen('calc.exe')    #Starten Sie den Rechner
#Identifizieren Sie den Taschenrechner anhand der untergeordneten Elemente des Desktops, indem Sie die PID angeben
cond = uia.CreatePropertyCondition(UIA_ProcessIdPropertyId, calc.pid)
calc_win = re.FindFirst(TreeScope_Children, cond)
print calc_win.CurrentName    # 'Taschenrechner'

Diesmal liegt es vorerst an hier. Ich habe den Punkt der Automatisierung von GUI-Vorgängen noch nicht erreicht, also werde ich vielleicht beim nächsten Mal fortfahren.

Recommended Posts

UI-Automatisierung mit Python
UI-Automatisierung Teil 2 in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Bearbeiten Sie Schriftarten in Python
Singleton-Muster in Python
Lesen Sie DXF mit Python
Täglicher AtCoder # 53 in Python
Verwenden Sie config.ini mit Python
Täglicher AtCoder # 33 in Python
Löse ABC168D in Python
Logistische Verteilung in Python
Täglicher AtCoder # 7 in Python
LU-Zerlegung in Python
Ein Liner in Python