-
오토핫키] WinGetPos 보다 정확한 WinGetPosEx오토핫키/라이브러리 2022. 9. 26. 22:36
오토핫키를 하다보면 WinGetPos 라는 명령어를 사용하게 되는데
WinGetPos , X, Y, Width, Height, WinTitle, WinText, ExcludeTitle, ExcludeText
지정한 윈도우의 위치와 크기를 알게 해주는 명령어이다.
보통은 이 명령어를 통해 창의 크기를 알아내고 그 크기에서 이미지서치를 한다던가
윈도우의 위치를 제어하기 편한 곳으로 이동시기기 전에 위치를 파악한다던가 하는데 사용할 것이다.
하지만 WinGetPos 의 문제점은 해당 창의 좌표나 크기의 오류가 있을 수 있다는 것이고
해당 내용은 레퍼런스에도 나와있지 않다.
이 문제는 보통 ld player 를 사용할 때 혹은 테스트를 위해 메모장을 사용할 때 발견하게 된다.
대부분의 창에서는 문제가 없기 때문에 눈치채지 못하고 계속 사용할 수도 있다.
그래서 문제가 발생했을 때 사용하면 좋을 함수를 소개한다.
WinGetPosEx(hwnd, byref x := 0, byref y := 0, byref w := 0, byref h := 0){ VarSetCapacity(rect, 16) if !DllCall("dwmapi\DwmGetWindowAttribute", "ptr", hwnd, "uint", 9, "ptr", &rect, "uint", 16) { x := NumGet(rect, "int") y := NumGet(rect, 4, "int") w := NumGet(rect, 8, "int") - x h := NumGet(rect, 12, "int") - y return true } }
함수
F1:: hwnd := WinExist("A") WinGetPos, x1, y1, w1, h1, ahk_id %hwnd% WinGetPosEx(hwnd, x2, y2, w2, h2) MsgBox % " ( WinGetPos`t|`tWinGetPosEx x1: " x1 "`t`t|`tx2: " x2 " y1: " y1 "`t`t|`ty2: " y2 " w1: " w1 "`t`t|`tw2: " w2 " h1: " h1 "`t`t|`th2: " h2 " )"
예시
원문 : https://www.autoahk.com/archives/43928
'오토핫키 > 라이브러리' 카테고리의 다른 글
오토핫키 버튼에 이미지, 아이콘 추가 (1) 2024.10.15 오토핫키] 인터넷 현재 페이지 주소 URL 얻기 (0) 2022.11.12 오토핫키 마우스 드래그로 툴팁 위치 변경 (0) 2022.05.17 오토핫키 번역기 / 구글번역 연동 (1) 2022.05.14 오토핫키 이미지없이 이미지서치, 구이 Picture / 이미지 이진화 (0) 2022.05.12