需求:
需要實現(xiàn)打開某個 windows 桌面軟件,實現(xiàn)自動輸入賬號和密碼,并且自動點擊登錄的功能。
這樣的話,后面就可以基于此實現(xiàn)定時登錄或者多賬號登錄等其他功能。
這里以 某個桌面客戶端舉個例子,這是它的登錄界面

實現(xiàn):
1、下載 inspect.exe 工具,用來獲取桌面客戶端登錄窗口的控件名稱,下載地址為:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/

選擇適合自己系統(tǒng)版本 sdk ,下載 winsdksetup.exe 安裝后,可以在目錄中找到 inspect.exe 工具
比如 C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x64 目錄下

2、通過 inspect.exe 工具 獲取桌面客戶端登錄窗口的信息
a. 獲取窗口 Name ,用來定位到整個桌面客戶端登錄窗口,這里的值是 XX OneQuant

b. 獲取賬號輸入框的 ClassName ,這里的值是 Edit 。這里的值和下面密碼輸入框的值一樣,所以代碼里可以使用 Edit1 來表示

c. 獲取密碼輸入框的 ClassName ,這里的值也是 Edit 。這里的值和上面賬號輸入框的值一樣,所以代碼里可以使用 Edit2 來表示

d. 獲取登錄按鈕的 ClassName ,這里的值是 Button

3、實現(xiàn)打開桌面客戶端,自動輸入賬號和密碼,并且自動點擊登錄的功能
from pywinauto.application import Application
# 桌面軟件路徑
ax_path = "C:\Ax\XX OneQuant\AxOneQuant.exe"
# 自動打開桌面軟件
app = Application(backend='uia').start(r'%s' % ax_path)
# 定位到桌面軟件窗口
app = Application().connect(path=r'%s' % ax_path)
# 通過 inspect.exe 獲取到的XX OneQuant 登錄窗口 Name 屬性的值
ax = app["XX OneQuant"]
# 除了通過 inspect.exe,也可以通過 print_control_identifiers() 獲取窗口控件的所有屬性
# ax.print_control_identifiers()
# 自動輸入用戶名,通過修改 inspect.exe 獲取到的賬號輸入框的 ClassName 屬性的值來實現(xiàn)
ax['Edit1'].set_text('jiucai')
# 自動輸入密碼,通過修改 inspect.exe 獲取到的密碼輸入框的 ClassName 屬性的值來實現(xiàn)
ax['Edit2'].set_text('123456')
# 點擊登陸按鈕,自動登錄。通過點擊 inspect.exe 獲取到的登錄按鈕的 ClassName 來實現(xiàn)
ax['Button'].click()
4、實現(xiàn)的效果參考
