좋아, 배경 정보 및 참조부터 시작하자.
사용할 모듈은 pywin32
이고 다운로드는 here이며, 구체적으로는 win32gui
인 API 참조 here입니다.
는 당신이 창 핸들에 "이동"할 수있는 대화 상자를 조작 할 수 있습니다 전에 자, 다음은 두 개의 입력이 경우
#32770
에
lpclassName
을 곳이처럼 보인다
win32.FindWindow
API 참조
here를 사용
의 (a 의미
import win32gui
control = win32gui.FindWindow("#32770", "File Upload")
,536 : 대화) 참조
here이 경우
File Upload
인
lpWindowName
,
HWND WINAPI FindWindow(
_In_opt_ LPCTSTR lpClassName,
_In_opt_ LPCTSTR lpWindowName
);
코드는 파일 핸들을 찾습니다
그리고 핸들을 저장합니다. 내 경우에는 721470
입니다.
다음 단계는 대화 상자에서 GUI 개체의 핸들을 찾습니다. Cancel
단추의 예를 보여줍니다. 핸들을 찾으려면, 나는 SendMessage
에 대한 BM_CLICK
및 here에 대한 참조 here 여기 FindWindowEx
API 참조,
import win32con
import win32api
ButtonHandle = win32gui.FindWindowEx(control, 0, "Button", "Cancel");
win32api.SendMessage(ButtonHandle, win32con.BM_CLICK, 0, 0)
을 사용 줘야 해.
최종 코드 :
import win32gui
import win32api
import win32con
window = win32gui.GetForegroundWindow()
title = win32gui.GetWindowText(window)
control = win32gui.FindWindow("#32770", "File Upload")
ButtonHandle = win32gui.FindWindowEx(control, 0, "Button", "Cancel")
win32api.SendMessage(ButtonHandle, win32con.BM_CLICK, 0, 0)
또 다른 방법은 아래의 watsup.winGuiAuto
모듈, here, 예를 사용하는 것입니다
from watsup.winGuiAuto import *
optDialog = findTopWindow(wantedText="File Upload")
CancelButton = findControl(optDialog,wantedClass="Button", wantedText="Cancel")
clickButton(SaveButton)
을하지만 난이 가장 쉬운 방법은 autoit
here를 사용하는 것입니다 생각, 내가 사용하고 있습니다 전에 pyqt에서, 명령을 쏴.
희망이 도움이됩니다.
추가 참조 (pywin32 버전) :
win32gui
here
win32api
here
당신이 웹 사이트의 URL을 제공 할 수있다 : 여기
더 많거나 적은 기본 구현을 재현 테스트 순수한 PyQt4 데모입니까? – enginefree
@enginefree 확실하게 게시물을 편집합니다 –
내가 제공 한 답변이 작동 했습니까? – enginefree