[Autohotkey][15] 오토핫키 강좌 - 기준점 바꾸기! Coordmode

Posted by 아이티프로13
2019. 5. 8. 23:57 프로그래밍/AutohotKey

 

안녕하세요. 쿠과자입니다.

요즘에 일에 채여서 오토핫키 강좌를 쓰지 못했네요.

사실은 쓸 길이 너무 막막해서 그런것도 있었습니다..ㅎㅎ;;

 

이번 오토핫키 강좌는 GUI에 대해서 소개할려고 했는데,

그 전에 이 구문을 한번 소개해주면 좋을거 같다 생각해서

이번 강좌는 Coordmode 에 대해서 소개해 드릴려고 합니다.

 

설명하기 전에 간단히 Coordmode에 대해서 알려드리자면

제목에서 말씀드렸다 시피 이미지서치나, 마우스 조작 등을 할때

좌표의 기준점을 바꾸는 명령어입니다.

그럼 시작하도록 하겠습니다.

Screen, Window, Client의 차이

 

 

CoordMode를 이해하기 전에 Screen, Window, Client에 대한 이해가 필요합니다.

제가 spy를 자주 켜서 알려드리지만, 저기 Mouse Position 부분에서 무조건 Window 부분을 사용하라고 했었던 적이 있었을 겁니다.

Ex. 2018/12/15 - [프로그래밍/AutohotKey] - [6] 오토핫키 완벽분해 강좌 - 마우스 조작

나머지 Screen 과 Client도 당연히 쓰일 수 있는데, 아직까진 제대로 쓰는 방법을 모르죠.

그걸 사용하는 방법이 바로 Coordmode고, 오늘 이에 대해서 알아보겠습니다.

 

(제 바탕화면으로 설명용 사진을 하나 만들어봤는데 약간 더럽네요 ㅋㅋ;; 양하바랍니다)

 

위 사진이 Screen, Window, Client에 대한 간략한 설명입니다.

 

Screen은 절대적인 좌표(Absolute)로, 모니터에 표시되는 전체 화면에서의 좌표를 뜻합니다.

잘 안보이시겠지만 사진의 맨 왼쪽 상단 빨간색 점이 (0,0)으로 시작되는 거죠. 이는 활성화된 창이 바뀌어도 좌표가 고정입니다.

 

Window활성화되고있는 창에서부터 시작되는 상대적인(Relative) 좌표를 뜻합니다.

마찬가지로 창의 좌측 상단 초록색 점이 (0,0)이 됩니다.  다르게 말하면 활성화된 창이 바뀌면 마우스 포인터가 가르키는 좌표도 바뀝니다.

 

Client는 활성화되고있는 창의 Client부분입니다. 이 부분은 OS나 테마에 따라서 약간씩 달라지지만,

일반적으로 Window 에서 그 창의 타이틀바, 메뉴 등등을 제외한 사용 가능한 부분이라고 합니다.

윈도우 10 기준, 사진에 표시된 부분의 좌측 상단 파란색 점이 (0,0)입니다.

 

설명을 보시면 아시겠지만, Client는 개인 사용 목적에서 설정해서 사용하면 좋겠지만,

호환성 목적에서는 그다지 좋은 선택임은 아님을 알 수 있습니다.

 

 

Coordmode 사용하기

 
Coordmode는 위에서 말한 Screen, Window, Client 등의 기준점을 바꾸는 명령어입니다.
 
먼저 Coordmode는 다음과 같이 사용합니다.
 
 
CoordMode, TargetType , RelativeTo
 
 
여기서 TargetType은 ToolTip(툴팁), Pixel(PixelGetColor, PixelSearch, ImageSearch), Mouse(마우스 관련 조작) Caret, Menu 등과 관련이 있고
RelativeTo는 위에서 말씀드렸던 Screen, Window, Client, Relative가 있습니다. (참고로 Relative는 Window와 동일합니다)
 
기본적으로 Coordmode는 아무런 명령을 따로 입력하지 않아도
Mouse와 Pixel은 Window로 기본설정이 되어있기 때문에
이전 강의에서 다 Window에 써진 좌표 기준으로 사용했고, 아무 이상이 없었던 겁니다.
 

 

먼저, 아무 창을 하나 잡고

스파이를 켜서 테스트 해볼 좌표를 잡아봅시다.

저같은 경우 윈도우 기준으로 346,183이고, 스크린 기준으로 478,274네요.

 

F6::
Coordmode,Mouse,Window
Mousemove,246,183
return

 
 
매우 간단한 예문을 하나 입력하고 테스트 해 봅시다.
 

 

아무 이상 없이 예상한 결과와 똑같이 작동하죠?

이제 Coordmode를 Screen으로 바꿔봅시다.

 

F6::
Coordmode,Mouse,Screen
Mousemove,246,183
return

 

 

 

이번에는 기준점이 전체화면 기준으로 바뀌었기 때문에,

전혀 다른 위치를 가르키는 것을 알 수 있습니다.

 

이번에는 Coordmode는 그대로 냅두고

Mousemove좌표를 방금 Screen에서 찾은 좌표로 바꿔보죠.

 

F6::
Coordmode,Mouse,Screen
Mousemove,478,274
return

 

 

다시 정상작동이 되는것을 확인할 수 있습니다.

 

눈치 좋으신 분들은 아시겠지만, Screen으로 하면

위에서 말씀드렸다시피 어느 창이 활성화되든 절대적인 좌표를 가르키기 때문에

여러 창을 띄워놓고 작업을 하거나 활성화될 창이 자주 바뀌는 경우 등에

사용해 주시면 좋습니다.

 

 

공감 버튼을 눌러주시면

블로거에게 힘이 됩니다!