Win32gui 無效視窗控制代碼
阿新 • • 發佈:2018-12-28
在用模擬瀏覽器上傳檔案時,用win32gui查詢視窗,並輸入檔案路徑,點選確定上傳。然而在設定開啟視窗焦點時,報錯了:
xx是 無效視窗控制代碼
經過spy++排查,確定視窗類和名稱都無誤,後來經過多次測試,發現問題是:視窗開啟太慢,在視窗開啟之前就開始查詢視窗了,當然就找不到了。所以要等一等,一秒也行。
time.sleep(1)
部分python程式碼片段如下:
ele_file.click()
time.sleep(1)
print("開啟檔案選擇彈框")
procHandle = win32gui.FindWindow(None, "開啟")
win32gui. SetForegroundWindow(procHandle)
print("設定檔案")
edit = win32gui.FindWindowEx(procHandle, 0, "ComboBoxEx32", None)
win32api.SendMessage(edit, win32con.WM_SETTEXT, 0, localPath)
print("點選開啟按鈕")
openBt = win32gui.FindWindowEx(procHandle, 0, "Button", '開啟(&O)')
win32api.PostMessage(openBt, win32con.WM_LBUTTONDOWN, 0, 0)
win32api.PostMessage(openBt, win32con.WM_LBUTTONUP, 0, 0)