1钓试、安裝pywin32
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32
2、代碼
import win32con
import win32gui
import win32api
import time
import random
import subprocess
def test1():
print('開始了')
# 找出窗體編號(hào)
subprocess.Popen(r"C:\Program Files (x86)\Foxit Software\Foxit PhantomPDF\FoxitPhantomPDF.exe")
time.sleep(1)
hwnd =win32gui.GetForegroundWindow()
print(hwnd)
left, top, right, bottom = win32gui.GetWindowRect(hwnd)
#找到“打開”按鈕的坐標(biāo)位置,單擊(暫不用此方法,直接發(fā)送快捷鍵ctrl+O帅霜,效果一樣)
#win32api.SetCursorPos([left+40,top+20])
#win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
# 設(shè)置為當(dāng)前活動(dòng)窗口
win32gui.SetForegroundWindow(hwnd)
# 按下ctrl+O
win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0)
win32api.keybd_event(ord('O'), 0, 0, 0)
win32api.keybd_event(ord('O'), 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(1)
# 獲取打開彈出框
hwDlg= win32gui.FindWindow("#32770","打開")
print(hwDlg)
#輸入文件名
a1 = win32gui.FindWindowEx(hwDlg,None,"ComboBoxEx32",None)
a2 = win32gui.FindWindowEx(a1,None,"ComboBox",None)
hwnd_filename = win32gui.FindWindowEx(a2,None,"Edit",None)
win32gui.SendMessage(hwnd_filename, win32con.WM_SETTEXT, None, "F:\\py\\win32gui\\測(cè)試文件\\百科圖解野外求生技巧.pdf")
# 點(diǎn)擊打開
hwnd_save = win32gui.FindWindowEx(hwDlg,None,"Button",None)
win32gui.PostMessage(hwnd_save, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.PostMessage(hwnd_save, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
time.sleep(3)
#點(diǎn)擊轉(zhuǎn)換按鈕
win32api.SetCursorPos([left+140,top+40])
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
time.sleep(0.1)
win32api.SetCursorPos([left+470,top+90])
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
time.sleep(0.1)
win32api.SetCursorPos([left+470,top+135])
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
#
# 獲取另存為
time.sleep(3)
hwDlg= win32gui.FindWindow("#32770","另存為")
print(hwDlg)
#輸入文件名
a1 = win32gui.FindWindowEx(hwDlg,None,"DUIViewWndClassName",None)
a2 = win32gui.FindWindowEx(a1,None,"DirectUIHWND",None)
a3 = win32gui.FindWindowEx(a2,None,"FloatNotifySink",None)
a4 = win32gui.FindWindowEx(a3,None,"ComboBox",None)
hwnd_filename = win32gui.FindWindowEx(a4,None,"Edit",None)
win32gui.SendMessage(hwnd_filename, win32con.WM_SETTEXT, None, "F:\\py\\win32gui\\測(cè)試文件\\百科圖解野外求生技巧2.docx")
time.sleep(0.2)
# 點(diǎn)擊保存
hwnd_save = win32gui.FindWindowEx(hwDlg,None,"Button",None)
win32gui.PostMessage(hwnd_save, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.PostMessage(hwnd_save, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
time.sleep(3)
# 按下ctrl+shit+W 關(guān)閉所有頁簽
win32api.keybd_event(win32con.VK_CONTROL, 0, 0, 0)
win32api.keybd_event(win32con.VK_SHIFT, 0, 0, 0)
win32api.keybd_event(ord('W'), 0, 0, 0)
win32api.keybd_event(ord('W'), 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(win32con.VK_SHIFT, 0, win32con.KEYEVENTF_KEYUP, 0)
win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0)
# 隱藏窗體
# win32gui.ShowWindow(hwnd,win32con.SW_HIDE)
#
# 顯示窗體
# win32gui.ShowWindow(hwnd,win32con.SW_SHOW)
def main():
test1()
if __name__ == '__main__':
main()