NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    기타 6. 완전 초보의 오토핫키 매크로 만들기. (이미지 서치와 클릭)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 그동안 1~6부까지 학습하면서 가장 궁금했던 기능이 바로!!! 오토핫키에서 이미지를 찾은 후 찾은 이미지를 클릭하는 방법일겁니다. 매크로의 가장 기본이기도하고, 이미지를 찾아서 클릭하는 방법만 알아도 매크로는 다 만들었다고해도 과언이 아닙니다. 생각해보면 사람도 눈으로 무언가를 찾아서 클릭하고, 또 무언가를 찾아서 클릭하는 업무의 연속입니다. 물론, 키보드 입력도 필요하고 어디선가 데이타를 복사해서 붙여넣기도 필요합니다.

    anAE7RV.jpg

     

     

    이제 모든 업무는 컴퓨터에게 맡겨놓고 더 생산적인 일에 집중할 수 있도록 하세요! 아래 링크에서 오토핫키 개발 환경을 갖추고, 마우스와 키보드에 대한 내용을 먼저 학습하고 이 글을 읽으시는게 좋습니다. 그래야 이 글에서 설명하는 내용들을 쉽게 이해할 수 있으니까요~

    1부 - 오토핫키 개발 환경 만들기 ]

    2부 - 오토핫키 매크로 만들기 (마우스) ]

    3부 - 오토핫키 매크로 만들기 (키보드) ]

    [ 4부 - 오토핫키 매크로 만들기 (GUI) ]

    [ 5부 - 오토핫키 매크로 만들기 (반복과 조건) ]

     

    Visual Studio Code를 실행하세요. 그리고, imageSearch.ahk 파일을 하나 추가 해줍니다.

    DstWiqh.png

     

     

    화면에서 찾고 싶은 이미지를 캡쳐해야 합니다. 이미지를 캡쳐할 수 있는 어떤 프로그램을 사용해도 상관 없습니다. 저는 엔지엠 에디터를 사용해서 바탕화면의 아이콘을 캡쳐 했습니다.

    nvv3CAi.gif

     

     

    캡쳐한 이미지의 이름은 "내 PC.png"로 저장했습니다.

    l6Ocsqn.png

     

     

    엔지엠 에디터를 사용한다면 [ 이미지 매치 ]로 간단하게 처리할 수 있습니다. 클릭할 이미지를 선택하고, 마우스 클릭 옵션을 선택하면 됩니다.

    CjhsIrL.gif

     

     

    오토핫키는 좌표를 어떻게 처리할지 옵션을 먼저 설정해줘야 합니다. 기본적으로 마우스 좌표를 기준으로 하기 때문에 이미지 처리가 실패하게 됩니다. 아래 내용을 잘 확인해서 상대 좌표와 절대 좌표를 적절하게 사용해야 합니다. 좌표계 설정은 CoordMode를 사용합니다.

    첫번째 파라메터

    • 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와 같습니다.

     

    이미지 서치를 사용하기 때문에 CoordMode는 Pixel이고, 찾은 이미지의 좌표는 절대 좌표(Absolute)로 처리합니다.

    #SingleInstance, Force
    SendMode Input
    SetWorkingDir, %A_ScriptDir%
    CoordMode, Pixel, Screen

     

    이미지 서치는 아래와 같이 사용합니다. FoundX와 FoundY는 찾은 이미지의 좌표를 받아오는 변수입니다. 그리고, 0, 0과 A_ScreenWidth, A_ScreenHeight는 윈도우 화면의 크기입니다. 이 4개 값으로 윈도우 화면을 만들고 마지막에 적어준 파일명의 이미지로 찾아주게됩니다. A_ScreenWidth와 A_ScreenHeight는 내장 함수로 매인 모니터의 가로, 세로 크기를 가져옵니다.

    ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\Users\ngmas\Desktop\내 PC.png

     

    이미지를 정상적으로 찾았으면 FoundX와 FoundY에 찾은 이미지의 좌표 값이 들어오게 됩니다. 이 좌표를 클릭하면 이미지 서치가 되겠죠?

    kvO0ngW.gif

     

     

    실행해보면 생각한것처럼 마우스가 이동하지 않았습니다. 오토핫키는 현재 활성창을 기준으로 좌표가 설정됩니다. 그래서 비주얼 스튜디오 코드를 벗어나서 클릭하지 못한것입니다. 마우스 좌표는 절대 좌표로 동작할 수 있도록 아래와 같이 마우스 클릭 위에 좌표계 설정을 추가 해줍니다. 그리고 실행 해보세요.

    #SingleInstance, Force
    SendMode Input
    SetWorkingDir, %A_ScriptDir%
    CoordMode, Pixel, Screen
    ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\Users\ngmas\Desktop\내 PC.png
    CoordMode, Mouse, Screen
    MouseClick, left,  FoundX, FoundY
    return

    oYAX10J.gif

     

     

    이번에는 마우스가 찾은 이미지로 잘~ 이동했습니다. 그런데, 클릭이 되지는 않았습니다. 캡쳐한 이미지의 모서리 부분을 클릭했기 때문인데요. 가운데를 클릭 하도록 코드를 좀 더 수정해야겠네요. 원래는 이미지의 크기를 가져와서 Width와 Height를 2로 나눈 값을 X, Y에 더해줘야 합니다. 그래야 크기가 제각각인 이미지를 선택하더라도 가운데를 클릭하기 때문입니다.

    MouseClick, left,  FoundX+20, FoundY+20

    DvXEubN.gif

     

     

    이번에는 윈도우 바탕화면의 "내 PC" 아이콘을 정상적으로 클릭했습니다. 이제 해야할일은~ 단순 반복적인 업무를 처리하기 위해 순차적으로 이미지를 캡쳐하고, 마우스를 클릭하도록 해주면 됩니다. 중간 중간 필요하다면 키보드 입력도 있어야 할테구요. 사람이 하는 일을 컴퓨터에게 시키는건 또다른 문제입니다. 하나 하나 자세하게 알려줘야하죠. 말로 설명하면 별거 아닌일도 매크로로 작성하려면 많은 노력과 시간이 소비됩니다. 쉽게 말해 매크로 제작은 노가다에 가깝죠^^;

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.