오토핫키 업무자동화 - otohaski eobmujadonghwa


Autohotkey#48, ControlSend와 SetTitleMatchMode https://youtu.be/VYvML03h9QI Focusing된 Window에 키를 내보낼때는 Send, SendRaw, SendInput, SendPlay, SendEvent를 사용하면 되는데, Background Window에 키를 내보려면 어떻게 해야 할까요? 바로 CotrolSend나 ControlSendRaw등을 사용하면 됩니다. 사용문법은 다음과 같습니다. ControlSend , Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText Raw가 있고 없고는 어떤 차이가 있을까요? 아래의 예를 보시죠. ControlSend, Edit1, This is a line of text in the notepad window.{Enter} Cont.. 더보기

오토핫키 업무자동화 - otohaski eobmujadonghwa
Autohotkey#46, RandBetween, 특정 범위에서 실수 난수(Random number) 발생하기 https://youtu.be/odJGwIr_5v0 기존에 임의의 숫자 발생기는 단순히 임의의 숫자(난수, random number)를 발생시켰는데, 일반적으로는 특정 범위내의 난수를 발생시키는게 일반적이므로 이번에는 해당 기능에 대해서 구현하는 것을 설명드립니다. 다시 한번 random number를 발생시키는 문법은 아래와 같습니다. Random, no, StartNo, EndNo StartNo에서 EndNo사이에서 난수를 발생시켜 no에 저장합니다. 만약 원하는 갯수만큼 난수를 발생시키려면 loop를 그만큼 돌리면 됩니다. Loop %Count% { Random, no, StartNo, EndNo } 그렇다면, 해당 갯수만큼 발생시킨 결과를 하나의 변수에 저장하려면 어떻게 해야 할까요? 저장용 변수.. 더보기


누군가가 저에게 업무 자동화 툴에 대한 소개를 요청하면 항상 빠뜨리지 않고 추천하는 프로그램이 바로 오토핫키 (AutoHotkey) 입니다.

Auto Hot Key는 내 컴퓨터의 활용도를 대폭 높여주는 설치형 S/W로 크게 다음의 4가지 기본 기능을 수행할 수 있습니다.​

1. 내가 원하는 단축키를 지정하여 일련의 동작을 자동으로 실행하게 하는 기능 (HotKey)

2. key word를 입력하면 Full Sentence로 바꿔주는 자동 고침 기능 (Hotstrings)

3. Key 보드 맵핑을 내가 원하는 대로 바꾸는 기능 (Remapping)

4. 실행시키자 마자 일련의 자동 동작을 실행하게 하는 기능 (자동 시작)

설치 방법부터 각 기능에 대해 하나씩 살펴보도록 하겠습니다.


오토핫키(AutoHotkey)는 무료로 제공되는 프로그램으로 내 컴퓨터에 설치하여 사용해야 하는 프로그램입니다.

아래 링크의 사이트로 접근하면 쉽게 프로그램을 설치할 수 있습니다.

AutoHotkey

Free keyboard macro program. Supports hotkeys for keyboard, mouse, and joystick. Can expand abbreviations as you type them (AutoText).

오토핫키 업무자동화 - otohaski eobmujadonghwa

Download 버튼을 클릭하여 설치파일을 다운로드 받은 후 실행하면 프로그램이 설치되면서 바로 사용이 가능합니다.

프로그램이 설치되고 나서 시작 버튼을 눌러서 보면 설치된 “AutoHotkey” 아이콘이 보이고, 해당 아이콘을 클릭해 보면 그 아래에 연관된 프로그램들이 연이어 떠 있는 것을 볼 수 있습니다.

오토핫키 업무자동화 - otohaski eobmujadonghwa

오토핫키 (AutoHotkey)를 사용하기 위해서는 문법에 맞게 텍스트 에디터에서 명령어를 편집하여 저장할 때 확장자 명을 “.ahk”로 저장해 주면 해당 파일을 더블클릭하여 실행이 가능합니다.

별도의 프로그램 없이 메모장에서 필요한 내용을 작성 할 수도 있지만, 가능하면 별도의 에디터를 설치해서 편집하는 것이 보다 편합니다.

1) SciTE4AutoHotkey

“SciTE4AutoHotkey”은 2014년에 마지막 Release되어서 꽤 오래전 프로그램이긴 합니다. 하지만, 오토핫키 전용 에디터 프로그램으로 만들어져서인지 6년이 넘게 지난 현재 시점에서도 사용에 불편함은 전혀 느껴지지 않는 전용 에디터입니다.

해당 프로그램은 아래의 링크에서 다운로드 받을 수 있습니다.

오토핫키 업무자동화 - otohaski eobmujadonghwa

SciTE4AutoHotkey

Installer – this program will install SciTE4AutoHotkey automatically.

기본적으로 오토핫키(AutoHotkey)의 문법에 따라 자동으로 하이라이트 되어 지고, 프로그램을 코딩하는 Studio형 프로그램들에서 제공하는 기본 기능들이 종합적으로 제공되어 사용에 어려움은 거의 없습니다.

“SciTE4AutoHotkey”이 깔린 상황에서 확장자 명이 “.ahk”인 파일에서 마우스 우클릭을 하면 연결 프로그램 리스트에서 “SciTE4AutoHotkey”를 찾을 수 있어서 쉽게 편집이 가능합니다.

2) Notepad++

“Notepad++”은 오토핫키 (AutoHotkey)를 위한 전용 에디터라기 보다는 범용 텍스트 에디터라고 볼 수 있습니다.

프로그래밍을 하거나, 다양한 형태의 텍스트 편집이 필요한 분들에게 보다 많은 편의 기능을 제공하고 있는 강력한 에디터 입니다.

“Notepad++” 내에는 특정 프로그램 언어에 대해서는 해당 문법의 규칙에 따라 하이라이트를 제공하는 기능도 있어서 보다 편하게 명령어를 작성할 수 있습니다.

내부적으로 인기가 많은 여러 컴퓨터 프로그래밍 언어에 대한 문법들이 제공되고 있지만, 안타깝게도 오토핫키(AutoHotkey) 프로그램 문법이 직접적으로 제공되고 있지는 않습니다.

하지만, 굉장히 유사한 프로그램이 있고, 문법도 유사하여 “AutoIt”으로 설정해 둬도 상당 부분 재활용이 가능합니다.

또는 내가 실제로 많이 사용하는 함수 위주로 메뉴의 언어 → 사용자 정의 언어로 활용하여 스타일을 등록할 수도 있습니다.

NotePad++은 아래의 링크에서 다운로드 받을 수 있습니다.

2. 오토핫키 (AutoHotkey) Hotkey 기능


Hotkey 기능은 내가 사용하고 싶은 단축키를 만들고, 해당 단축키가 눌렸을때 내가 원하는 바를 실행시키는 기능을 말합니다.

한 줄로 시행해야 할 명령이 정확히 정의할 수 있으면 아래와 같은 형식으로 소스가 작성 됩니다.

지정한 단축키 :: 수행할 명령

2줄 이상의 명령이 순차적으로 진행되어야 한다면 다음과 같은 형식으로 소스가 작성 됩니다.

지정한 단축키 ::
   수행할 명령 1
   수행할 명령 2
   수행할 명령 3
   ...
return

이때 단축키는 어떤 키를 내가 정한 단축키로 사용할 것인가를 정해야 하고, 약어로도 사용이 가능합니다.

대표적인 단축키 약어를 정리하면 다음과 같습니다.

​# : Window 키를 의미

! : Alt 키를 의미

^ : Ctrl 키를 의미

+ : Shift 키를 의미

​간단한 예시를 살펴보겠습니다.

#n::
   Run Notepad
return

이 예시에서 지정한 단축키는 “#n” 으로 Win + n 을 누른것을 의미합니다.

예시 파일로 저장된 ahk 파일을 실행하고 Win + n을 누르면 Notepad(메모장)이 실행됩니다.

​여기서 내가 지정하는 단축키는 키보드 뿐만이 아니라 마우스의 버튼, 휠, 특수버튼도 설정이 가능합니다.

(조이스틱도 설정이 가능합니다. Test는 안해봐서 자신있게 말씀은 못드리지만, 아무튼 가능합니다.)

LButton : 마우스 왼쪽 버튼

RButton : 마우스 오른쪽 버튼

XButton1 : 4번째 마우스 버튼(마우스 기종에 따라 다르나 보통 브라우저 Back 버튼 기능 수행)

XButton2 : 5번째 마우스 버튼(마우스 기종에 따라 다르나 보통 브라우저 Forward 버튼 기능 수행)

WheelDown : 마우스 휠을 아래방향으로 돌리기

WheelUp : 마우스 휠을 위쪽 방향으로 돌리기

WheelLeft : 마우스 휠을 왼쪽으로 꺽기

WheelRight : 마우스 휠을 오른쪽으로 꺽기

​또한 실행되고 있는 프로그램이 무엇인가에 따라서 실행할 Hotkey를 구분 설정할 수 있습니다.

Deault값은 모든 프로그램에서 실행되지만, 다음과 같이 설정하면 특정 프로그램에서만 실행되게 만들 수 있습니다.

#IfWinActive ahk_class Notepad
   #h:: msgbox, Hello
#IfWinActive

예제와 같이 ahk 파일을 만들고 실행하면, 메모장을 실행시킨 상태에서 Win + h 버튼을 누르면 다음과 같은 메세지 Box가 뜹니다. (다른 프로그램에서는 메시지 박스가 뜨지 않습니다.)

오토핫키 업무자동화 - otohaski eobmujadonghwa

예시에서는 단순한 메세지 박스를 띄우는 동작을 시행해 봤지만, Auto Hot Key를 좀더 익히면 보다 복잡하고 다양한 응용이 가능합니다.


3. Hotstrings

내가 자주 사용하는 특수문자 또는 문장을 내가 정한 약어를 입력했을때 자동으로 변환해 주는 기능입니다.

다음과 같은 형식으로 사용됩니다.

:옵션:약어::변경할 내용

여기서 옵션은 생략할 수도 있고 필요에 따라서는 필요한 내용을 추가할 수도 있습니다.

예를 들면 다음과 같이 사용할 수 있습니다.

::btw::by the way

이 명령어는 내가 “btw”라는 글을 쓰면 by the way라는 글로 바꾸라는 의미입니다.

그런데, 이 명령은 내가 btw라는 글을 쓰자마자 이루어 지는 것이 아니라 btw라는 글을 쓰고 나서 단어가 끝났다는 뜻을 가지는 키가 입력이 되어야 지정된 “by the way”라는 글자로 변화합니다.

즉 스페이스, 텝, 엔터키, 쉽표, 마침표 등의 문단기호가 입력 되어야 변경됩니다.

또한, “btw”라는 글자 앞에 다른 문자가 같이 있어도 입력이 변경되지는 않습니다. 이와 같은 부분에 대한 설정은 옵션에서 보다 상세히 설정할 수 있습니다. 많은 옵션을 줄수 있지만, 쉽게 응용이 가능한 옵션 몇가지만 살펴 보겠습니다.​

* : 문단의 마침을 의미하는 부호가 들어오지 않더라도 약속된 약어가 입력되자마자 변경하라

? : 문단의 앞에 다른 문자가 있더라도 약속된 약어는 변경해라

B0 : 약어는 지우지 말고 문자를 추가하라

:*:btw::by the way

“btw”라고 입력하는 순간 바로 “by the way”로 변경됩니다.

:?:al::airplane

이경우 “capital”이라고 입력 하더라도 “capitairplane”으로 자동 변경되게 됩니다.

:B0:<html>::</html>

여기서는 <html>이라고 입력하면 입력된 <html>은 삭제하지 않고 그 뒤에 바로 </html>이라는 글을 추가합니다.

여기에 한가지 덧붙인다면 다음과 같이 변경이 가능합니다.

:B0:<html>::</html> {left 8}

<html>이라고 입력하면 입력된 <html>은 삭제하지 않고 그 뒤에 바로 </html>이라는 글을 추가한 다음 커서를 왼쪽으로 8칸 이동하여 <html>과 </html> 사이에 위치하게 합니다.​

이와 같은 기능들을 응용하면 내가 자주 사용한 특수 문자나 글귀를 자동으로 입력될 수 있게 조정할 수 있습니다.

​이 Hotstrings 기능 역시 프로그램에 따라서 골라서 실행하게 만들 수도 있습니다.​

뿐만 아니라 코딩을 통하여 일련의 정보를 회신해 줄 수도 있습니다.

::]d::
   FormatTime, CurrentDateTime,, yyyy/M/d h:mm tt  
   SendInput %CurrentDateTime%
return

위의 소스는 “]d” 라는 입력을 하면 바로 현재 날짜와 시간 정보를 입력하게 해주는 명령을 수행하게 됩니다.

엑셀 내에서의 Ctrl + ; 와 Ctrl + Shift + ; 를 합친 기능과 비슷하다고 해야 할까요?


4. Remapping


키보드 또는 마우스 등의 입력장치에서 입력되는 신호를 다른신호로 바꿔 주는 기능입니다.

사실 명령 체계 자체는 HotKey를 만드는 기능과 다르지 않습니다.

입력되는 키 :: 변경할 키

예를 들어서 다음과 같이 만들어 볼 수 있습니다.

a::b

이경우 a를 입력하면 컴퓨터에서는 b로 입력되게 됩니다.

다음과 같이 만들 수도 있습니다.

a::return

이경우 컴퓨터는 a버튼을 완전히 무시합니다.

제 생각에는 일반적인 경우에는 이 remapping 기능이 큰 의미가 없을 것 같지만, 게임을 할 경우에는 더없이 유용할 수 있을 것 같다는 생각이 듭니다.

(실은 제가 게임계를 떠나 있은지 꽤 오래 된지라… 직접 테스트는 못해봤습니다.)

​일단… 다음과 같이 셋팅을 할 수 있지 않을까 생각됩니다.

#IfWinActive ahk_class 게임프로그램명
   LWin::return
   ...
#IfWinActive

지정된 게임 프로그램이 활성화되어 실행중일 때는 왼쪽 Window 버튼이 먹지 않을 것이고요.

그 다음줄 부터 지정할 키패드는 게임에서 많이 사용하는 키들을 내가 원하는 위치 근처로 모아 설정할 수 있습니다.


5. 오토핫키 자동 실행 프로그램

오토핫키 (AutoHotkey)에서 활용 가능한 또 다른 형태의 활용 방법으로 컴퓨터를 부팅하자 마자 자동 실행되게 하는 방법이 있습니다.

별도의 단축키를 지정하지 않고 바로 실행할 명령어를 조합하여 ahk 파일을 만들면, 해당 프로그램을 실행했을 때 정해진 순서대로 실행하는 자동 실행 프로그램을 만들 수 있는 점을 이용하는 것입니다.

하고자 하는 일련의 동작을 오토핫키 (AutoHotkey) 파일로 만들어 두고 부팅하자 마자 해당 오토핫키 파일을 실행하게 만들어 두면 컴퓨터를 부팅하자 마자 내가 원하는 동작을 하게 하는 자동 실행 프로그램을 만들 수 있습니다.

자동 실행 되게 등록하는 방법은 시작 폴더에 실행파일 바로가기 등록하면 됩니다.

먼저 Win + R 버튼을 눌러서 실행창을 연 다음 “Shell:startup”을 입력, 확인을 누릅니다.

오토핫키 업무자동화 - otohaski eobmujadonghwa

이렇게 접근한 시작 프로그램 폴더에 실행할 실행파일 바로가기를 복사해서 붙여 넣으면 컴퓨터 부팅시 자동으로 원하는 프로그램이 실행됩니다.

오토핫키 업무자동화 - otohaski eobmujadonghwa

이와 관련된 영상은 제작된 이력이 있으니, 다음의 영상을 참고하시면 도움이 될 듯 합니다.

제가 설정하여 사용하고 있는 오토핫키에 대한 내용은 다음의 링크에서 보다 자세히 살펴보실 수 있습니다.

오토핫키 업무자동화 - otohaski eobmujadonghwa

잔마왕식 오토핫키 파일 (AutoHotkey Sample)

내가 실제로 사용하고 있는 오토핫키 파일을 공유합니다. 주요 기능별, 항목별 설명도 함께 하니 오토핫키를 사용해 보고자 하시는 분들에게 도움이 될만한 샘플 파일이 될것입니다.