프로그램을 실행하고 핸들을 구해서 종료하는 기본 패턴입니다.

 

가장 간단한 프로그램 중 하나인 메모장을 실행하고, 1초 대기하고, 메모장의 핸들을 구하고, 메모장을 강제 종료하는 코드는 다음과 같습니다.

import pyautogui
import win32gui
import win32con
import subprocess

subprocess.Popen('notepad.exe')
pyautogui.sleep(1)
hwnd = win32gui.FindWindow(None, "제목 없음 - Windows 메모장")
win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)

 

 

 

 

이제 메모장을 실행하여 메모장편집창의 크기를 구하는 방법은 다음과 같습니다. 각각의 핸들과 자식개체의 핸들을 구해서 크기값을 표시해줍니다.

Edit 개체의 크기를 구하는 방식으로 적용 되었으며 크기를 프린트 하도록 설정 하였습니다.

 

 

import pyautogui
import win32gui
import win32con
import subprocess

subprocess.Popen('notepad.exe')
pyautogui.sleep(1)
hwnd = win32gui.FindWindow("Notepad", "제목 없음 - Windows 메모장")
print(hwnd)
old = win32gui.GetWindowText(hwnd)
print(old)

child_class = "Edit"
hwnd_A = win32gui.FindWindowEx(hwnd, 0, child_class, None)

print(hwnd_A)

rect = win32gui.GetWindowRect(hwnd_A)
x = rect[0]
y = rect[1]
w = rect[2] - x
h = rect[3] - y
print("Window %s:" % win32gui.GetWindowText(hwnd_A))
print("\tLocation: (%d, %d)" % (x, y))
print("\t    Size: (%d, %d)" % (w, h))

 

현재 자식개체의 클래스를 기반으로 동작 하도록 설정하였으므로 Mousemove를 통해 현재 값에 대한 정상적인 동작 확인 가능여부를 확인 할 수 있습니다.

 

+ Recent posts