프날 오토핫키 강좌  v2

⚠ 이 강좌는 오토핫키 v2를 다룹니다

지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만, 새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.

37. MouseGetPos


마우스 커서 위치를 변수에 담는 방법에 대해 알아볼 것입니다.

MouseGetPos

MouseGetPos는 현재 마우스 커서의 위치를 반환하는 함수입니다.

MouseGetPos([&OutputVarX, &OutputVarY, &OutputVarWin, &OutputVarControl, Flag])

각각의 매개변수는 아래와 같은 역할을 합니다.

  • &OutputVarX: 커서 위치의 x 좌표가 담길 변수의 참조
  • &OutputVarY: 커서 위치의 y 좌표가 담길 변수의 참조
  • &OutputVarWin: 커서 위치의 창 ID가 담길 변수의 참조
  • &OutputVarControl: 커서 위치의 컨트롤 ID가 담길 변수의 참조
  • Flag: &OutputVarControl 매개변수의 동작을 설정해주는 매개변수

매개변수에 &가 붙은 이유는 인수를 '참조 형식'으로 전달해야 하기 때문인데, 현재 수준에서 이유를 설명드리기에는 복잡한 내용입니다. 그래서 여러분은 이렇게 생각하시면 됩니다.

값이 담길 변수 앞에 & 기호를 붙여 작성해준다!

따라서, var 변수에 값을 담고 싶으면, 함수에 전달할 때 &var로 사용해주시면 됩니다.

1. &OutputVarX, &OutputVarY

현재 마우스 커서 위치(x, y)가 담길 변수를 참조 형식으로 각각 적어줍니다. 만약 posXposY 변수에 각각 x, y 좌표를 담고 싶다면 &posX, &posY로 적어주시면 됩니다.

2. &OutputVarWin, &OutputVarControl

현재 마우스 커서가 위치한 곳의 창 ID와 컨트롤의 ClassNN이 담깁니다. ID가 무엇인지, ClassNN이 무엇인지는 추후에 강좌를 진행하면서 알려드리겠습니다.

자주 쓰이는 매개변수는 아니면서 지금 설명드리려면 GUI 프로그램의 구조를 설명드려야하므로 구체적인 설명은 넘어가겠습니다.

3. Flag

&OutputVarControl 매개변수에 적어준 변수에 어떤 값이 담길지 지정해주는 일종의 옵션입니다. 이 매개변수 역시 기초 강좌에서 언급하기엔 내용이 복잡해지므로 생략하겠습니다.

실습

보셨듯이 마우스가 위치한 곳의 여러 정보를 받아올 수 있는 유용한 함수이지만, 실습은 자주 쓰이는 '마우스 커서의 위치를 가져오는' 동작만 진행해보겠습니다. 예제를 살펴보면 그렇게 어렵지 않을 것입니다.

1. 마우스 커서의 위치를 가져와 출력하기

1F1::
2{
3 MouseGetPos(&posX, &posY)
4 MsgBox(posX ", " posY)
5}
6
7F2::
8{
9 ExitApp
10}
예제 1. 마우스 좌표를 출력

실행 후 F1을 누를 때마다 현재 마우스 좌표가 출력되는 것을 볼 수 있습니다.

참조 형식으로 적어주기 위해 값을 담을 변수에 & 기호를 적어준 부분은 생소하시겠지만, 그 이유를 파헤치기엔 우리가 배운 것이 너무 적습니다. 추후에 함수에 대해 구체적으로 배울 때 명확히 알려드리겠습니다.

질문하러 가기