pythonモジュール-pywindows自動化インストールソフト)

14213 ワード

GUIウィンドウクエリツール
spy+lite
pywinutモジュール原理:
  https://www.cnblogs.com/testlife007/p/4710599.html
pywhinayto常用機能
  http://hao.imrrp.com/blog.php?id=4538
クリックイベント:
  https://blog.csdn.net/weixin_40161673/articale/detail/83246861
捕らえる
  https://blog.csdn.net/weixin_40161673/articale/detail/83246861
 
実践方法を模索しました。
自動でテンセントQQをインストールします。(ソフトウェアはデフォルトwin 32です。)
from pywinauto import application
import time

#1.QQ    
app = application.Application().start('D:\software_    \QQ9.0.3.exe')
time.sleep(2)

#2.          
#         ,             
# window_title=['   -   ']
# print(app[window_title].wrapper_object())
window_title='  QQ    '

#3.           ,   ,  
# print(app[window_title].print_control_identifiers())

#4.         ,   ,  
#    :app[window_title].child_window(title='   ',class_name="    ")

#.click()     
#.set_edit_text()   Edit
#          help(app[window_title].child_window(class_name="Edit"))  

#  QQ       
app[window_title].child_window(title="     ").click()
time.sleep(1)

#        
app[window_title].child_window(class_name="Edit").set_edit_text(r'D:\Program Files (x86)\Tencent\QQ')

#     
app[window_title].child_window(title="        ").click()
app[window_title].child_window(title="      ").click()

#    
# print(app[window_title].print_control_identifiers())
# help(app[window_title].child_window(class_name="#32770").child_window(title="    ", class_name="Button").click())
app[window_title].child_window(class_name="#32770").child_window(title="    ", class_name="Button").click()
time.sleep(40)
# print(app[window_title].print_control_identifiers())
app[window_title].child_window(class_name="#32770").child_window(title="  QQ   ", class_name="Button").uncheck_by_click()
app[window_title].child_window(class_name="#32770").child_window(title="  QQ           ", class_name="Button").uncheck_by_click()
app[window_title].child_window(class_name="#32770").child_window(title="  QQ     ", class_name="Button").uncheck_by_click()
app[window_title].child_window(class_name="#32770").child_window(title="    ", class_name="Button").click()
 
自動的に電話ソフトをインストールします。
このソフトウェアは自動的にインストールされていますが、起動プロセスはウィンドウプロセスではなく、ウィンドウオブジェクトがすべて取れません。
したがって、connectプロセス番号を使って起動されたウィンドウオブジェクトを取得します。
from pywinauto import application
import time
import psutil
import re
import os

os.popen('D:\software_    \X-Lite    .exe')
time.sleep(1)
PID = 0
for proc in psutil.process_iter():
    try:
        pinfo = proc.as_dict(attrs=['pid', 'name'])
    except psutil.NoSuchProcess:
        pass
    else:
        if re.match(r'^is.*?.tmp$',pinfo['name']):
            PID = pinfo['pid']
# print(PID)
app = application.Application(backend='uia').connect(process=PID)
# print(app.window(class_name='TWizardForm').print_control_identifiers())
# print(dir(app.window(class_name='TWizardForm')))
app.window(class_name='TWizardForm').child_window(title="Next >",control_type="Button").click()
# print(app.window(class_name='TWizardForm').print_control_identifiers())
app.window(class_name='TWizardForm').child_window(title="I accept the agreement", control_type="RadioButton").click()
app.window(class_name='TWizardForm').child_window(title="Next >", control_type="Button").click()
# print(app.window(class_name='TWizardForm').print_control_identifiers())
app.window(class_name='TWizardForm').child_window(title="To continue, click Next. If you would like t"
                                                        "o select a different folder, click Browse.",
                                                  control_type="Edit").set_edit_text(r'D:\Program Files (x86)\CounterPath\X-Lite')
app.window(class_name='TWizardForm').child_window(title="Next >",control_type="Button").click()
app.window(class_name='TWizardForm').child_window(title="Next >",control_type="Button").click()
time.sleep(2)
# print(app.window(class_name='TWizardForm').print_control_identifiers())
# print(dir(app.window(class_name='TWizardForm').child_window(title="Launch X-Lite", control_type="CheckBox")))
app.window(class_name='TWizardForm').child_window(title="Finish", control_type="Button").click()
 
転載先:https://www.cnblogs.com/Anec/p/10370401.html