IT 관련 팁/오토핫키 Autohotkey

오토핫키 - 마우스 커서 위치를 저장하고 그 위치로 되돌리기

RayShines 2022. 3. 16. 10:28
반응형

오토핫키에는 마우스 커서가 위치했던 좌표를 기억하는 기능이 있다. 이 기능을 이용하면 명령을 실행한 뒤 명령 실행 전의 마우스 커서 위치로 복귀가 가능하다. 예를 들면 작업을 하다가 옆 모니터에 열려 있는 창을 리프레쉬하고 원래 작업을 다시 하고 싶을 때가 있다. 그럴 때 마우스를 옮겨서 리프레쉬를 할 수도 있지만, 오토핫키로 핫키를 만들어두면 리프레시를 하게 하고 원래 자리로 마우스를 되돌아오게 할 수 있다. 

 

1. 현재 마우스 커서의 위치를 저장하기

아래 스크립트를 메인 스크립트에 추가해보자.

 

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

 

F7:: ; F7을 누르면
CoordMode, mouse, screen ; 좌표의 모드를 screen으로 변경
MouseGetPos, mx, my ; 현재 마우스 커서의 위치를 (mx, my)라는 좌표로 저장
return

 

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

 

이 스크립트가 제대로 작동하려면 coordmode가 screen이어야 한다. Coordmode는 디폴트 값이 relative이다. 따라서 모드를 screen으로 바꾸지 않고 위의 스크립트를 실행하면 모니터 전체가 아니라 현재 창을 기준으로 좌표를 기억하기 때문에 의도한 대로 커서가 움직이지 않을 수 있다. 

 

2. 명령 실행 후 원래의 위치로 마우스 커서를 다시 이동시키기

 

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

 

F7::
CoordMode, mouse, screen ; 좌표의 모드를 screen으로 변경
MouseGetPos, mx, my ; 현재 마우스 커서의 위치를 (mx, my)라는 좌표로 저장
mouseclick, left, 1000, 500 ; (1000,500)에 왼쪽 클릭
Mousemove, mx, my ; 원래 마우스 커서 위치인 (mx, my)로 마우스 커서를 이동
return

 

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

 

이제 스크립트를 위처럼 바꿔보자. 이렇게 하면 (1000,500) 좌표를 클릭한 뒤 다시 원래의 좌표로 마우스 커서가 복귀하는 것을 눈으로 볼 수 있다. 

 

3. 응용하기

조금 더 발전을 시켜보자. 예를 들어 A라는 창에서 작업을 하다가 B라는 창에서 특정 버튼을 누르고, 다시 작업하던 A창으로 돌아오고 싶은데, B라는 창의 위치가 매번 바뀔 수도 있다. 그럴 때는 위의 스크립트로는 원하는 작업을 할 수가 없다.

 

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

 

F7::
CoordMode, mouse, screen ; 좌표의 모드를 screen으로 변경
MouseGetPos, mx, my ; 현재 마우스 커서의 위치를 (mx, my)라는 좌표로 저장
winactivate, ahk_exe notepad.exe ; 메모장을 활성화, 메모장은 미리 열려 있어야만 한다!
send ^v ; 붙여넣기 명령
Mouseclick, left, mx, my ; 원래 마우스 커서 위치인 (mx, my)에 왼쪽 클릭
return

 

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

 

위의 스크립트는 작업을 하다가 메모장에 붙여둘 내용이 있을 때 쓸 수 있는 스크립트이다. 일단 원래 작업하던 창에서 ctrl+c 작업까진 수행해둔 뒤 F7을 누르면 메모장이 활성화되고 ctrl+v 를 눌러 붙여넣기를 한 뒤 원래 마우스 커서 위치로 돌아와서 왼쪽 클릭을 하며 원래 창을 활성화하는 동시에 마우스 커서도 복귀된다. 

 

실제로 해보면

 

위의 경우처럼 잘 작동한다.

 

위의 스크립트를 조금 변형하면 매우 편리하게 작업을 할 수 있다. 

반응형