Essayez d'utiliser UI Automation pour automatiser les opérations de l'interface graphique Windows avec Python. Il existe une version .NET et une version COM de UI Automation, mais je souhaite l'utiliser à partir de CPython, alors utilisez la version COM. Pour le moment, j'ai vérifié comment l'appeler, alors prenez note.
Recommandations d'automatisation de l'interface utilisateur 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
Tout d'abord, mettez les comtypes dans pip,
pip install comtypes
Ensuite, générez un wrapper pour UI Automation.
import comtypes
from comtypes.client import GetModule
GetModule('UIAutomationCore.dll')
Un module wrapper est créé dans Lib \ site-packages \ comtypes \ gen. Ensuite, comparez la référence MSDN de UI Automation avec _944DE083_8FB8_45CF_BCB7_C477ACB2F897_0_1_0.py pour savoir comment l'utiliser. (Le nom du fichier peut être différent selon l'environnement)
Importez comtypes.gen.UIAutomationClient pour obtenir un objet UI Automation et faites ceci et cela.
from comtypes.gen.UIAutomationClient import *
uia = CoCreateInstance(CUIAutomation._reg_clsid_,interface=IUIAutomation,clsctx=CLSCTX_INPROC_SERVER)
re = uia.GetRootElement() #Obtenez l'élément supérieur du bureau
print re.CurrentName # 'bureau'
Essayez d'accéder à la calculatrice (calc.exe) via UI Automation. Continuant d'en haut.
import subprocess
calc = subprocess.Popen('calc.exe') #Démarrez la calculatrice
#Identifiez la calculatrice à partir des éléments enfants du bureau en spécifiant le pid
cond = uia.CreatePropertyCondition(UIA_ProcessIdPropertyId, calc.pid)
calc_win = re.FindFirst(TreeScope_Children, cond)
print calc_win.CurrentName # 'calculatrice'
Pour le moment, cette fois, c'est ici. Je n'ai pas atteint l'automatisation du fonctionnement de l'interface graphique, donc cela peut être continué la prochaine fois.
Recommended Posts