IT 관련 팁/오토핫키 Autohotkey

오토핫키 - 창 크기, 창 위치 제어하기

RayShines 2022. 3. 24. 11:48
반응형

오토핫키는 창의 크기와 위치를 제어하는 기능도 제공한다.

 

1. Winmove

Winmove 명령어를 이용하면 창의 위치와 창의 크기를 제어할 수 있다.

 

예를 들어 메모장의 위치와 크기를 변화시키는 스크립트를 짜보면 다음과 같다.

 

 

**** 시작 - 이 행은 스크립트에 포함시키지 않는다 ****

 

^#!-:: ; ctrl + win + alt + - 를 누르면
Winactivate, ahk_class Notepad ; 메모장을 활성화시킨 뒤 
WinMove, ahk_class Notepad,, 100, 100, 300, 800 ; 왼쪽 위 꼭짓점을 (100,100)에 위치시키고 너비 300, 높이 800 크기의 창으로 변경 (Notepad 뒤에 콤마가 2개 있으니 주의해야 한다)

 

 

**** 끝 - 이 행은 스크립트에 포함시키지 않는다 ****

 

오토핫키 창크기 창위치 제어

 

처음에는 위와 같던 창이 위의 핫키를 누르고 나면

 

오토핫키 창크기 창위치 제어

 

위와 같이 바뀐다. 물론 위치도 바뀌었다.

 

2. Winmove 함수의 활용

(1) 항상 같은 위치에서 프로그램이 실행하도록 할 수 있다.

Winmove를 이용하여 프로그램을 실행하면 프로그램이 항상 같은 위치에서 같은 크기로 실행되도록 할 수 있다. 그리고 이것이 유용한 것은 mousemove, mouseclick과 함께 사용할 때이다.

 

(2) Coordmode를 Screen으로 바꾸었을 때 특히 유용

오토핫키는 coordmode가 relative를 디폴트 값으로 하지만, 간혹 coordmode를 screen으로 바꾸었을 경우에는 모니터 상에서의 절대적 위치에 따라 mousemove와 mouseclick이 작동할 수 있다. 이럴 때에는 창이 반드시 같은 위치에 있어야만 한다. 이때 Winmove 함수를 사용해서 창을 미리 고정해두면 매우 유용하다.

 

 

 

3. Winmove를 GUI와 함께 사용하기

Winmove 명령어를 GUI 버튼에 할당해두면 활용도가 높다. 스마트폰이나 태블릿으로 PC를 원격제어할 때 가장 귀찮고 불편한 것이 창의 위치를 바꾸는 것이다. 특히 듀얼 모니터를 사용하고 있다면 그 불편함이 배가된다. 

 

GUI 버튼을 만드는 방법은 아래 포스팅을 참고하면 된다.

 

오토핫키 - GUI로 원격제어 시 사용할 수 있는 버튼 만들기

 

오토핫키 - GUI로 원격제어 시 사용할 수 있는 버튼 만들기

원격제어를 할 때 오토핫키를 사용할 수 있으면 좋겠다는 생각을 했다. 그런데 스마트폰이나 태블릿으로 원격제어를 할 때는 ctrl + F10 같은 핫키를 누르기가 곤란하다. 그래서 마우스 클릭이나

rayshines.tistory.com

 

예를 들면 아래와 같이 만들어 볼 수 있다.

 

 

B1: ; "1" 버튼
Gui,submit,nohide ; 이 행은 모든 버튼 관련 스크립트에 반드시 포함되어야 한다.
Winactivate, ahk_class Notepad ; 메모장을 활성화시킨 뒤 
WinMove, ahk_class Notepad,, 100, 100, 300, 800 ; 왼쪽 위 꼭짓점을 (100,100)에 위치시키고 너비 300, 높이 800 크기의 창으로 변경 (Notepad 뒤에 콤마가 2개 있으니 주의해야 한다)

return

 

 

이렇게 해두고 원격제어로 1번 버튼을 누르면 원격제어 시에도 메모장의 위치를 간단하게 바꿀 수 있다. 

 

 

 

 

4. Win Key와 화살표 조합 이용해서 창 위치 제어하기

Winmove 명령어가 아니라 윈도우 키와 화살표 키의 조합을 이용하는 방법도 있다.

 

예를 들면 아래와 같이 스크립트를 짜볼 수 있다.

 

 

--------------------------

 

SetTitleMatchMode, 2



Gui, Add, Button, x86 y50 w100 h30 gB1, Right ; Right라는 이름의 버튼 생성
Gui, Add, Button, x86 y100 w100 h30 gB2, Left ; Left라는 이름의 버튼 생성
Gui, Add, Button, x86 y150 w100 h30 gB3, END ; END라는 이름의 버튼 생성
Gui, Show, x131 y91 h250 w274, WinMove Panel ; Winmove Panel이라는 이름의 GUI를 (131,91) 좌표에 가로 274, 세로 250의 크기로 생성
Return


B1: ; 버튼 1
Gui,submit,nohide
Winactivate, ahk_exe EXCEL.EXE
Winwaitactive, ahk_exe EXCEL.EXE

send {Lwin down} ; 왼쪽 윈도우키를 누른 채로 (여기서 down은 키를 누르고 있으라는 명령이다)

Send {right} ; 오른쪽 화살표 누르기
return

B2: ; 버튼 2
Gui,submit,nohide
Winactivate, ahk_exe EXCEL.EXE
Winwaitactive, ahk_exe EXCEL.EXE
send {Lwin down} ; 왼쪽 윈도우키를 누른 채로 (여기서 down은 키를 누르고 있으라는 명령이다)
Send {left} ; 왼쪽 화살표 누르기
return

B3: ; 버튼 3
exitapp
return 
Gui,submit,nohide

 

GuiClose:
ExitApp

 

--------------------------

 

위의 스크립트를 짜고 GUI의 할당 버튼을 누르면 엑셀 창이 화면의 왼쪽, 오른쪽으로 옮겨진다. 여러 번 누르면 듀얼 모니터를 건너 가면서 움직인다. 잘 활용하면 원격제어를 하면서 창을 옮길 때 매우 편리하게 사용할 수 있다. 

반응형