제가 만든 매크로에서 사용중인 스크립트고, 동작여부는 윈도우 7 및 8.1의 몇가지 테마에서 테스트 완료했습니다.
?- 적용이 안될 가능성도있고, 약간의 오류도 있지만 대부분 정상 작동합니다.
WinGetPos,aWX,aWY,aW,aH,%title% ; 해상도값 스캔
ControlGetPos,clientX,clientY,maW,maH,,%title% ; clientX, clientY 윈도우화면위치지정( border 값), 해상도값지정
sW := aW+(800-maW)
sH := aH+(480-maH)
Winmove, ?%title%,,,,%sW%,%sH% ; 해상도변경완료
------------------------------------------------------------------------
기본적으로 타이틀을 변수 title 로 읽어오시고,
위 스크립트를 실행하면
해상도가 변경될껍니다.
위 스크립트는 지니모션에 있는 디바이스바/위젯바를 제외한 화면의 크기를 800*480으로 변경해주는 스크립트고
만약 본인의 스크립트가 오른쪽 바를 포함한 좌표로 설정되어있는 경우는
너비(800) 부분을 850?750-착각하여 반대로 적었네요..(바 사이즈)으로 변경해주시면 됩니다.
제 매크로는 위 설정을 기본으로 짜여져 있습니다.
부가 설명을 드리자면
WinGetPos, 타이틀이 적힌 윈도우 창의?정보를 읽어옵니다
aWX, 디바이스 X 좌표
aWY, 디바이스 Y 좌표
aW, 디바이스 너비
aH, 디바이스 높이
%title% 디바이스 타이틀
ControlGetPos, 타이틀이 적힌 윈도우에 있는 Class 위치를 변수값으로 읽어옵니다.
clientX, class의?X 좌표
clientY, class의?Y 좌표
maW, class의 너비
maH, class의?높이
, class 이름이 들어가는 부분이지만 생략하시면 좌상단에 위치한 첫번째 class 값을 기본으로 가져오는듯 합니다.
%title% 디바이스 타이틀
Winmove, 타이틀이 적힌 윈도우를 이동합니다
%title%, 타이틀
, 타이틀 문구
, 이동할 좌표 X
, 이동할 좌표 Y
%sW%, 변경할 너비
%sH% 변경할 높이
디바이스 내 class 좌표를 읽어오기때문에
테마 혹은 윈도우 버전에 따른 보더값이 변경되더라도 오류없이 진행 할 수 있습니다.
winmove 에서 각각 좌표값이 없는 이유는 위치이동은 안하고 너비/높이만 변경하면 되기 때문입니다.
저도 오토핫키를 접한지 얼마 되지 않아서 맞게 설명한것인지는 정확하지 않으나
제가 이해한 내용을 토대로 작성하였습니다.
그럼 수고하세요. ^^