NGMsoftware

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

    학습


    기타 오토핫키(AutoHotKey) - 매크로 만들기

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 업무용 매크로를 쉽게 제작할 수 있도록 도와주는 소프트웨어는 종류가 상당히 많습니다. 엔지엠 RPA 매크로도 수많은 제작 프로그램중에 하나일뿐입니다. 대부분 매크로라고 하면 부정적인 이미지가 먼저 떠오르고 게임에서 자동 사냥할 때 쓰는 프로그램이라고 알고 있을겁니다. 매크로의 원래 개발 의도는 단순 반복적인 작업 또는 업무를 기계가 대신하도록 하기 위함입니다. 오토핫키를 이용한 매크로 만들기는 개발자가 아닌 일반인들도 쉽게 사용할 수 있도록 최대한 간단하고 쉽게 설명하도록 하겠습니다. 아래 사이트에서 오토핫키를 다운로드 후 설치하세요.

    오토핫키 다운로드 ]

    SJSQ6yZ.png

     

     

    설치는 항상 그렇듯이~ 계속 누르면 됩니다.

    AglDbb9.png

     

     

    버전은 64비트로 설치 했는데요. 운영체제가 x86이면 32비트로 설치하세요.

    NwCJ9oW.png

     

     

    이 후 옵션들을 선택할 수 있는데요. 인코딩 문제들을 피하려면 UTF-8을 선택하는게 좋습니다. 파일 드래그 & 드롭 기능도 활성화 해주세요~

    lsYyhPs.png

     

     

    이제 새로운 스크립트를 하나 만들어보죠~ 엔지엠 에디터의 새 스크립트와 동일합니다. 윈도우 바탕화면에서 우클릭 후 아래 그림과 같이 "Autohotkey Script"를 클릭하세요.

    lrWYSy6.png

     

     

    바탕화면에 오토핫키 스크립트 파일이 생겼을겁니다. Visual Studio Code에서 열어줍니다. 비주얼 스튜디오 코드가 없다면 메모장이나 텍스트 에디터 도구를 사용해서 열어주세요. 가능하면 비주얼 스튜디오 코드를 설치하시는게 좋을겁니다. 텍스트를 편집하기 위한 유용한 기능들이 많이 있거든요^^; 일반적인 개발 언어가 아니기 때문에 비주얼 스튜디오에서 아래와 같은 보안 경고 메세지가 표시됩니다. "모든 작업 영역에 대한 내 결정 기억"에 체크하고, "열기"를 클릭하세요.

    x7E4SlE.png

     

     

    오토핫키를 쉽고 빠르게 개발하기 위한 확장 도구들을 설치 해줍니다. 오토핫키를 하면서 아직도 메모장에서 작업하는 사람은 없겠죠^^;

    AFbKtpC.png

     

     

    이렇게 3개 설치하시면 됩니다. 시각화와 디버그 및 개발 편의성을 개선해줍니다. 저는 이미 자바스크립트나 노드, 파이썬등등을 개발하기 위한 환경을 준비해놔서 코드 러너도 설치되어 있습니다. 여러분들도 마켓플레이스에서 "Code Runner"를 검색해서 추가로 설치해야 합니다.

    xqFJdY0.png

     

     

    비주얼 스튜디오 코드의 환경 구성 파일인 settings.json에 오토핫키(Autohotkey macro)를 개발할 수 있는 몇가지 설정들이 필요합니다. Ctrl+,(콤마)를 누르면 설정 화면이 표시됩니다. 아래 그림과 같은 설졍 화면에서 우측 상단에 "설정 열기(Json)"을 클릭하세요.

    rngnctg.png

     

     

    오토핫키 기본 위치와 인코딩을 설정 해줍니다.

      "code-runner.executorMap": {
        "ahk": "\"C:\\Program Files\\AutoHotkey\\AutoHotkey.exe\""
      },
      "code-runner.executorMapByFileExtension": {
        ".ahk": "\"C:\\Program Files\\AutoHotkey\\AutoHotkey.exe\""
      },
      // 터미널 윈도우 UTF-8설정
      "terminal.integrated.profile.windows": ["-NoExit", "/c", "chcp.com 65001"]

     

     

    저는 여러가지 개발 환경을 가지고 있다보니 단축키 설정은 안했는데요. 만약, 오토핫키만을 위한 단축키를 연결하려면 아래 내용도 추가 하세요.

        { "key": "f5", "command": "code-runner.run","when": "editorTextFocus && editorLangId == 'ahk'"},
        { "key": "f6", "command": "code-runner.stop" },

     

     

    이제 간단한 테스트를 해볼까요? 메세지 박스를 표시하는 스크립트입니다. 아래 코드를 추가하고 실행 해보세요.

    MsgBox, 1, NGMsoftware, 안녕하세요!`n엔지엠소프트웨어입니다., 3

    OmbKuPe.png

     

     

    메세지 박스를 3초간 표시 해줍니다. 여러분들도 잘 동작하죠?

    pc5acPU.gif

     

     

    엔지엠 에디터에서는 아래와 같이 스크립트를 작성할 수 있습니다. 프로그래밍에서 줄바꿈은 \n입니다. 하지만, 오토핫키는 `n으로 줄바꿈을 할 수 있습니다.

    5jIRX6x.png

     

     

    실행하면 동일한 결과를 확인할 수 있습니다.

    hXIgTyw.gif

     

     

    엔지엠 에디터는 유료 소프트웨어라서 오토핫키보다 사용은 쉽습니다. GUI로 작업하기 때문에 직관적이기도 하구요. 무엇보다 코딩을 몰라도 누구나 쉽게 매크로를 작성할 수 있습니다. 재미로 몇가지 더 해보도록 하죠~ 아래와 같은 스크립트를 작성하고 다시 실행 해보세요.

    #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn  ; Enable warnings to assist with detecting common errors.
    SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
    F2::            ; F2를 누르면 스크립트가 실행됩니다. (단축키 등록)
    Loop, 10        ; 10번 반복 한다는 뜻입니다.
    {
        SendInput, NGM
        SendInput, software
        Send, {Enter}
    }

    DrBzfpR.gif

     

     

    엔지엠 에디터도 아래와 같이 동일하게 동작할 수 있습니다.

    Kb9pdN5.gif

     

     

    여기까지 오토핫키를 설치하고, 정상적으로 동작하는지 간단한 테스트를 진행 했습니다. 마우스 동작 테스트를 위해 아래 동영상과 같이 오토핫키 스크립트를 하나 만드세요.

    fOWjGYy.gif

     

     

    간단한 테스트를 위해 아래와 같은 스크립트를 하나 만들고, 저장 후 실행 해보세요. 마우스가 현재 활성화되어 있는 클라이언트의 좌상단부터 100, 100의 위치를 클릭합니다.

    MouseClick, Left, 100, 100

    USGHOiS.gif

     

     

    오토핫키는 기본적으로 활성화되어 있는 창(Window)을 기준으로 좌표가 계산됩니다. 엔지엠 에디터는 절대 좌표로 이동하게 됩니다. 물론, 비활성 모드인 경우에는 상대 좌표로 계산되긴 하지만요. 엔지엠 매크로는 아래와 같이 바탕화면의 좌상단을 기준으로 100, 100 좌표를 클릭합니다.

    6WoR0A8.gif

     

     

    오토핫키는 마우스 좌표계를 아래와 같이 구분하고 있는데요. 이 내용을 이해하지 못하면 마우스 동작을 처리하는데 문제가 될 수 있습니다.

    • Screen: 모니터 기준
    • Window: 활성화된 창 제목 기준
    • Client: 활성화된 창 제목 제외 기준

     

    각각의 차이점을 확인하기 위해 CoodMode를 설정하고 테스트를 해보죠~ 아래 동영상은 CoodMode를 Screen과 Window를 번갈아가면서 테스트했습니다. Screen으로 설정하면 윈도우 모니터 기준으로 100, 100위치만 클릭합니다. 절대 좌표이기 때문이죠. 하지만, Window로 변경하고 실행하면 현재 활성화된 창을 기준으로 설정한 좌표로 이동됩니다. 그래서, Screen은 절대값(Absolute)으로 처리되고 Window, Client는 상대값(Relative)으로 처리되는걸 알 수 있습니다.

    lrVtucW.gif

     

     

    엔지엠 에디터는 핸들로 동일하게 처리가 가능합니다. 대부분의 비활성 기능을 제공하는 매크로 프로그램들이 동일한 방식을 사용합니다. 창의 위치가 변경되더라도 클릭 좌표를 창 기준으로 따라갑니다. 창이 다른창에 가려지더라도 클릭 입력이 해당 창으로 들어갑니다. 비활성 매크로 만드는 방법은 나중에 좀 더 자세하게 알아보도록 하겠습니다.

    dQtHK0i.gif

     

     

    코드를 아래와 같이 변경해도 동작은 동일합니다. "Mouse"를 입력하면 개발 도구(Visual Studio Code)에서 관련 기능들을 추천(Intellisense)해줍니다.

    CoordMode, Mouse, Screen
    F2::
    MouseMove, 100, 100
    MouseClick, Left

     

    기능을 선택하면 Syntax(신택스, 구문)를 표시해줘서 쉽게 개발할 수 있도록 가이드 해줍니다. 다른 편집기 도구와는 성능 자체가 다릅니다. 비주얼 스튜디오 코드에서는 아래와 같이 표시가 됩니다. 몇가지만 외우면 크게 어려운건 없을겁니다. 우선, 대괄호가 없는건 필 수 입력해야 하는 값입니다. X, Y가 되겠죠? 대괄호에 있는 항목들은 옵셔널(Optional, 선택적) 항목입니다. Speed와 R입니다. 스피드(Speed)는 속도를 나타내고 R은 Relative(상대값)입니다.

    MouseMove, X, Y [, Speed, R]

     

    각각의 옵션들을 설정하고 테스트 하면서 결과를 확인 해보세요. 엔지엠 에디터는 현재 위치 옵션을 통해 상대 좌표로 처리할 수 있습니다.

    TnIUabh.gif

     

     

    마우스 동작이 그렇게 다채롭거나 복잡한건 아니라서 이해하는데 크게 어려움은 없을겁니다. 엔지엠 에디터의 경우에는 마우스 트래킹이나 핸들 정보 찾는것들이 모두 컨트롤로 쉽게 처리할 수 있지만요. 오토핫키는 마우스 좌표를 찾으려면 별도 도구를 사용해야 합니다. 오토핫키를 설치하면 Window Spy가 같이 설치됩니다.

    ksn4fpv.png

     

     

    Window Spy를 실행하면 마우스 정보부터 해상도등등... 여러가지를 알 수 있습니다. 이걸 사용하면 원하는 위치에 마우스를 클릭할 수 있을거예요. 또한, 현재 해상도 정보와 선택한 윈도우 정보도 같이 출력해주기 때문에 나중에 비활성으로 매크로를 제작할 때 도움을 받을 수 있습니다. 마음에 여유를 가지고 천천히 하나씩 알아가보도록 하고~ 오늘은 이만 줄여야겠네요. 다음 시간에 다시 봐요^^

    IkYJnTV.png

     

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.