본문 바로가기
코딩/오토핫키

오토핫키로 원하는 좌표 클릭하기

by DIYver 2020. 10. 18.

 

이번 포스트에서는 오토핫키에서 제일 많이 사용할 기능인 원하는 좌표에 마우스 클릭하기 기능을 알아보도록 한다.

 

제일 기초적인 내용을 담고 있지만, 제일 중요한 내용이므로 잘 이해하고 넘어가야 한다.

 

일단 알고리즘을 하나 생각해보자.

마우스 좌클릭을 하려면 일단 좌표를 알아야한다.

그런데 좌표는 기준에 따라서 달라지게 된다.

좌표의 기준이 될 수 있는 것은 크게 3가지가 되는데,

1. 스크린 좌표계

2. 창 좌표계

3. 클라이언트 좌표계

 

좀 자세하게 설명하자면

1. 스크린 좌표계

- 절대 좌표계로 우리의 해상도에 따른 좌표계이다.

2. 창 좌표계

- 창(윈도우)의 좌상단 끝을 원점으로 한 좌표계이다.

3. 클라이언트 좌표계

- 창 좌표계와 비슷한데, 창 틀 영역을 제외한 좌상단 끝이 원점이 된다.

 

여기서 2번과 3번은 둘 중에 하나만 사용하는게 좋을 듯하다.

대부분 사람들은 창 좌표계를 더 많이 사용하는 듯 하다.

 

 

 

이렇게 좌표계에 대해서 알아봤으므로, 이제는 클릭하는 방법을 알아보도록 하자.

 

일단 SciTE4AutoHotkey 편집기를 실행한다.

그리고 새로만들기(Ctrl + n)를 한다.

되었으면 이제 단축기 설정부터 마우스 클릭까지 알아보자.

 

CoordMode,Mouse,Window

F9::
MouseClick,left,20,20,1,0
return

 

코드는 위의 코드를 복사해 붙여넣기를 하면 되고,

F5 버튼을 눌러보자

그러면 해당 스크립트(코드)가 실행이 된다.

 

여기서 단축키를 F9로 설정하였으므로, F9 버튼도 한번만 눌러보자.

그러면 창의 좌상단 끝의 아이콘을 클릭하게 되어 창의 상태 조절 창이 뜨게 된다.

F9 를 빠르게 두번 누르면 창이 꺼지게 되므로 조심하자.

 

 

 

아무튼 이제 코드 해석을 간단하게 해보도록 하겠다.

 

CoordMode,Mouse,Window

 - CoordMode 라는 것은 좌표계 설정을 뜻한다.

   오토핫키 함수들은 괄호를 치지 않고 쉼표로 함수와 파라미터들을 구분하므로, 적응하는 것이 필요하다.

   CoordMode 다음에 오는 Mouse 는 클릭과 드래그 할 때의 좌표계를 설정한다는 뜻이다. 우리는 마우스 클릭을 할 것이므로 이 옵션을 Mouse로 해주어야 한다.

   그다음에 오는 Window 는 창 좌표계 라는 뜻이다.

 

사용할 수 있는 좌표계는

1. Screen

2. Relative

3. Window

4. Client  

이렇게 4개가 되는데, 보통 1번 또는 3번을 사용한다.

2번과 3번은 비슷한 기능을 한다. 

지금은 처음이니깐 자세하게 다루지는 않도록 하자.

 

 

 

CoodMode 세팅이 끝났다면

이제 단축키를 설정해줘야 한다.

코드에서 보면 F9 :: 라고 되어 있는데, 이 뜻이 F9 버튼을 누르면 아래 코드를 실행하라는 것이다.

 

 

단축키 설정도 끝이 났다면 이제 마우스 클릭 명령을 해주어야 한다.

마우스 클릭 명령어는 MouseClick 이다.

마우스 클릭 사용법은 아래와 같다.

MouseClick [, WhichButton, X, Y, ClickCount, Speed, DownOrUp, Relative]

파라미터들을 살펴보자.

 

WhichButton : Left, Right, Middle, WheelUp, WheelDown

 - Left : 좌클릭으로 소문자로 써도 상관없다.

 - Right : 우클릭으로 소문자로 써도 상관없다.

 - Middle : 마우스 휠버튼 클릭으로, 소문자를 써도 상관없다.

 - WheelUp : 마우스 휠버튼을 위로 굴리는 것과 같다. 소문자를 써도 상관없다.

 - WheelDown : 마우스 휠버튼을 아래로 굴리는 것과 같다. 소문자를 써도 상관없다.

 

X, Y : 좌표계의 X값과 Y값을 입력하면 된다. 좌표계 원점은 좌상단 끝점이 된다.

 

ClickCount : 원하는 클릭 횟수를 입력해주면 된다. 기본값은 한 번 이다.

 

Speed : 마우스의 움직이는 속도이다. 0이면 바로 즉각적인 것이 된다. 값이 커질수록 속도가 느려진다.

  (기본값은 0이다)

 

DownOrUP : 마우스를 누른 상태와 뗀상태로 만들 수 있다.

 Down 으로 해두었으면 Up 상태로 바꿔줘야 한다.

 

Relative : CoordMode 에서 기본 세팅값에서 약간 벗어나고 싶을때 조절하면 된다.

 

 

 

이런 내용을 가지고 다시 코드를 해석해보면

MouseClick,left,20,20,1,0

- 마우스 좌클릭을 좌표 20,20 에 한번만 클릭한다.

return

- 해당 코드를 마친다.

가 된다.

 

 

 

이제 원하는 좌표를 어떻게 알아낼 수 있는지 알아보겠다.

AutoHotKey 를 설치하게 되면

Window SPY 라는 프로그램이 자동으로 설치되게 된다.

 

window 키를 눌러서 프로그램을 검색하는 창에 window spy 라고 검색해보자.

 

window spy를 실행시키면 

현재 내 마우스의 좌표가 뜨게 된다.

마우스 위치가 Screen 좌표계, Window 좌표계, Client 좌표계로 뜨게 되므로 자신이 사용하고 싶은 좌표계를 고르면 된다.

 

 

 

이제 이 내용을 응용해서 원하는 버튼을 누르는 매크로를 만들 수 있게 되었다.

 

간단하게 테스트하기 위해서 티스토리의 글자색을 빨갛게 바꿔주는 매크로를 제작해보았으니 참고하시길 바란다.

 

CoordMode,Mouse,Window

F9::
MouseClick,left,803,185,1,0
Sleep,50
MouseClick,left,707,280
MouseClick,left,960,540
return

 

 

시연 동영상

youtu.be/-MAFSNkFyyo

 

 

 

 

 

 

 

 

 

댓글