14 - [오토핫키] CoordMode 좌표

    앞서 MouseClick을 배우면서 지정된 좌표를 클릭하는 방법에 대해 다뤘습니다. 그럼 원하는 좌표는 어떻게 알 수 있을까요?

     

    오토핫키를 설치했던 폴더에 함께 들어있던

     

    "Active Window Info (Window Spy)"를

     

    실행 시켜주세요.

     

    앞으로 줄여서 "스파이"라고 설명 할게요.

     

    "스파이"를 보면 각종 정보들이 나옵니다.

     

    윈도우 타이틀, 마우스 좌표, 콘트롤 정보,

     

    텍스트 정보 등 여러가지 내용이 있어요.

     

    우리는 두번째 칸에 있는 "Mouse Position"을

     

    봅시다. (Win+A로 "스파이"화면을 멈춥니다.)

     

    Absolute : 화면 전체의 절대 좌표

     

    Relative : 창의 상대 좌표

     

    Client : 사용 가능한 부분의 상대 좌표

     

    오토핫키는 Relative를 기본값으로 하며

     

    "CoordMode" 명령어를 활용하여 변경 할 수

     

    있습니다.

     

     

     

     

    각 좌표의 기준점이 다름!!

     

    문법

    CoordMode, ToolTip|Pixel|Mouse|Caret|Menu [, Screen|Window|Client]

     

    설명

    ToolTip

    ToolTip 명령어에 영향을 줍니다.

    Pixel

    PixelGetColor, PixelSearch, ImageSearch에 영향을 줍니다.

    Mouse

    MouseGetPos, Click, MouseMove/Click/Drag등 마우스 좌표에 영향을 줍니다.

    Caret

    내장 변수 A_CaretX와 A_CaretY에 영향을 줍니다.

    Menu

    Menu를 보여주는 좌표에 영향을 줍니다.

    Screen

    화면을 기준으로 합니다. "스파이"에서 Absolut와 같습니다.

    Window

    활성창을 기준으로 합니다. "스파이"에서 Relative와 같습니다.

    Client

    클라이언트 영역을 기준으로 합니다. "스파이"에서 Client와 같습니다.

     

     

    예제

    예제1)

    F1::

    CoordMode, Mouse, Screen

    MouseClick, L, 50, 50

    Return

     

    F2::MouseClick, L, 50,50

    예제2)

    CoordMode, Mouse, Screen

     

    F1::MouseClick, L, 100, 100

    F2::MouseClick, L, 150, 150

     

    굉장히 복잡해 보이지만 CoordMode 문법의 쉼표를 잘 확인해주세요. CoordMode는 ToolTip|Pixel|Mouse|Caret|Menu 중 1가지와 Screen|Window|Client 중의 1가지, 총 2가지 기능만 넣을 수 있어요.

    그럼 예제1을 실행해보세요. 바탕화면에서 "F1"을 눌러봅시다. 이번에는 메모장을 연 후에 "F1"을 눌러봅시다. 차이가 있나요? "F1"은 CoordMode로 마우스의 좌표를 Screen으로 지정 했기 때문에 절대 좌표로써 화면을 기준으로 움직이기 때문에 어떤 창이 활성화 되더라도 같은 좌표를 찾아갑니다.

    이번엔 바탕화면에서 "F2"를 눌러보세요. 마찬가지로 메모장을 연 후에 "F2"를 눌러봅시다. 어떤 차이인지 보이시나요? "F2"는 기본값인 Relative로 되어있기 때문에 바탕화면일때와 메모장이 활성되었을때 기준점이 다르답니다.

    그렇다면 매번 좌표를 위해 CoordMode를 써야할까요?

    예제2를 보면 자동 실행 섹션에 CoordMode를 한번만 써줬는데도 "F1", "F2"모두 Screen이 적용된 모습을 볼 수 있습니다. 초보자에게는 당연히 화면에 보이는 그대로 Screen을 사용하는것이 이해하기 편합니다. 하지만 오토핫키를 다른 사람에게 배포하거나, 나중에 배울 비활성 명령어들은 모두 Relative를 사용하기 때문에 특별하지 않는한 기본값인 Relative를 사용하도록 합시다.

     

     

     

     

     

     

    Posted by 옹봉이