오토핫키는 윈도우 시스템에서 자동키 매크로를
만들 수 있는 프로그램입니다.
매크로 뿐만 아니라 스크립트 프로그램을
만들 수 있는 프로그래밍 언어입니다.
윈도우 운영체제의 작업 자동화에
특화된 오픈소스 소프트웨어로
언어라고 하지만 프로그래머가 아니더라도
충분히 필요한 목적에 따라 사용할 수
있으므로 코딩 입문용으로도 좋습니다.
인터넷 초기부터 온라인 게임이 발달한
한국에서는 오토클리커 등 매크로를 사용하려고
오토핫키 프로그램을 많이 사용했습니다.
하지만 다수가 공정하게 게임을 해야 하는
MMORPG 등 장르에서 치팅으로 인식되어
현재는 오토핫키 사용이 검출되면 계정 블럭 등의
조치를 취할 수 있으니 사용에 주의를 요합니다.
해외의 경우도 경쟁이 있는 게임에서는
비슷한 시각이기 때문에 주의하도록 합니다.
오토핫키를 바라보는 관점은 게임에 따라
케바케인데 요새는 모바일도 매크로 방지의
로직이 들어가 있습니다. 랭킹 순위 등에
따라 보상을 지급하기 때문에 당연합니다.
오토핫키의 강력함은 사람의 입력(input)을
대신한다는 점에 있습니다. 게임에 대한
이야기를 했지만 머신러닝 분야에서
사용되기도 합니다. 오픈소스니까
아마 앞으로 머신러닝 쪽으로 기능이
업데이트 될 수도 있겠다 예상해봅니다.
그 정도까지 진지한 프로그램을 만들 생각이
없더라도 오토핫키는 여전히 좋은 프로그램인데
예를 들어 윈도우의 단축키를 바꾸고 싶다면
윈도우 운영체제에서는 복잡한 과정을
거쳐야 하고 또 뭘 잘못 건드리면 골치아픈
일이 생길 수도 있습니다. 오토핫키는
스크립트 파일(ahk 확장자)를 켜놓으면
기존 윈도우의 단축키 들을 덮어씌우기
(override) 하고 프로그램을 끄면 다시
윈도우 단축키로 돌아오기 때문에 문제가 없습니다.
오토핫키로 간단한 단축키부터 복잡한 프로그램
로직까지 구현할 수 있기 때문에 스크립트언어로
분류하는 것이고 큰 장점은 무료 오픈소스이며
윈도우를 사용하는 누구나 실생활에
바로 적용할 수 있다는 점입니다.
프로그래밍 초보자부터 중급자까지 두루
사용할 수 있다는 점도 매력입니다.
(프로그램을 아예 몰라도 사용할 수 있다)
아래 공식 사이트에서 최신 Installer 를
다운로드 받아 설치합니다.
현재 널리 사용되는 것은 1.1 버전입니다.
(조만간 2.0 버전이 출시될 예정)
기본은 Express Installation 을 설치합니다.
Custom Installation 에서는 32비트 유니코드와
레가시 ANSI 32비트 버전을 선택할 수 있습니다.
그밖에 설치 폴더나 UI Acceess(관리자용)도
설정이 가능한데 잘 모르겠다면
Express를 설치하도록 합니다.
설치는 오래걸리지 않습니다.
Run AutoHotkey를 클릭하면
Getting Start 문서가 나오는데
AutoHotkey는 바로 실행되는
프로그램이 아니라 스크립트를
작성하고 hotkey를 등록해야 실행됩니다.
Help 파일을 닫고 실제적으로
스크립트를 작성해보겠습니다.
(Tutorial을 따라해도 상관은 없음 - 영어)
스크립트 파일이라는 것은 AutoHotkey
명령어들이 들어있는 텍스트 파일이므로
텍스트 편집기로 작성해야 합니다.
메모장으로 작성해도 됩니다만,
전용 에디터의 도움을 받는다면
스크립트를 짜기가 더 쉽습니다.
에디터에는 여러가지가 있지만
대표적으로 SciTE4AutoHotkey를
많이 사용합니다. 아래 링크에서
다운로드 받을 수 있습니다.
Installer가 있는데 Portable 버전도
있으니 취향에 따라 선택합니다.
SciTE.exe를 실행하여 에디터를 킵니다.
일반 텍스트 편집기와 비슷한데
인텔리센스와 하이라이트 기능 등이
포함되어 있습니다.
초보자들도 오토핫키의 기본 기능인
HotString과 HotKey 두가지만 알면
상당히 전문가적 활용을 할 수 있습니다.
먼저 HotString을 알아보겠습니다.
텍스트 편집기에 다음과 같이 입력합니다.
file - save 로 hello.ahk 라는 이름으로
바탕화면에 저장합니다. 이름은 상관없으나
파일의 확장자는 ahk로 지어야 합니다.
이제 hello.ahk 파일을 실행합니다.
메모장을 열고 hw를 입력한 후
Enter 키, Tab 키, Space 키를 누를시
hw가 Hello World라는 텍스트로
변경되는 것을 볼 수 있습니다.
HotString이란 HotKey(단축키)처럼
단축 문자열과 같은 것 입니다.
텍스트를 입력하는 순간 바로 변환하길
바란다면 다음과 같이 처음을 :*: 로 표시합니다.
:*:hw::Hello World!
키보드 hw를 치는 순간 Hello World로
변환되는 것을 볼 수 있습니다
오토핫키를 종료하고 원래 윈도우로
돌아오려면 아래와 같이 트레이 아이콘에서
H 아이콘을 우클릭하여 Exit 할 수 있습니다.
소문자와 대문자를 구별하길 원한다면
아래와 같이 :*c: 기호를 사용합니다.
:*c:hw::Hello World!
hw에는 변환되도 hW나 Hw, HW는
변환되지 않습니다.
여러줄의 텍스트로 변환하고 싶다면
아래와 같이 {enter}를 중간에 넣어줍니다.
::hw::Hello World!{enter}Hello World!{enter}Hello World!
*HotString 기능은 설정된 단축 문자열을
입력하면 미리 정의한 문자열을 출력하는
기능입니다. 단순하지만 상당히 획기적인
기능으로 온갖 응용이 가능합니다.
예를 들어서 윈도우 시스템 관리자는
자주 사용하는 터미널 명령어를
HotString으로 지정하면 매번 똑같은
타이핑을 하지 않아도 됩니다.
프로그래머나 IT관리자가 아니더라도
이메일이나 블로그의 명함 카드,
SNS에 반복하는 마케팅 구문,
고객에게 보내는 메시지 등을
일일히 입력할 필요도 없고
복사해서 붙여넣기할 필요도 없습니다.
- HotString(핫스트링)은 키보드를 입력하면
자동으로 원하는 텍스트로 변환해 줍니다.
그게 터미널 명령어이건 일반 텍스트 편집기건
상관없이 변환하기 때문에 강력한 기능입니다.
심지어 윈도우의 WSL에서도 됩니다.
(WSL - 리눅스용 윈도우 하위시스템)
HotKey(핫키)는 단축키를 의미합니다.
Ctrl + [키보드] 부터 F1, F2 등 모든
키보드에 바인딩할 수 있습니다.
아래의 HotKey는 ^w 즉 Ctrl + w 를
누르면 AutoHotkey Tutorial이란 메시지를
현재 포커스된 윈도우창에 보냅니다.
(현재 클릭되어 있는 윈도우)
^w::
send, AutoHotkey Tutorial
send는 명령어로 해당 윈도우창에
다음의 텍스트 메시지를 보냅니다.
윈도우와 각각의 윈도우 애플리케이션에는
고유의 HotKey가 있습니다. 어떤 HotKey가
설정되어 있는지는 알 수 없지만 통상적으로
많이 쓰는 HotKey가 있습니다.
(HotKey는 단축키를 말하는 것이다)
예를 들어 텍스트 편집 프로그램에서는
Ctrl + S가 파일의 저장입니다.(윈도우)
단축키가 중복이 되지 않도록
적당히 피해줄 필요가 있습니다.
중복을 피하기 위해서는 해당 앱을
실행하고 중복이 안되는 단축키를
확인한 후 스크립트를 작성하면 됩니다.
다음의 예제를 보면 한글을 사용합니다.
그런데 SciTE4AutoHotkey 프로그램에서
작성한 후 실행하면 텍스트가 깨지는데요.
윈도우의 셸(명령프롬프트) Default
코드 페이지가 949라서 그럴 수 있습니다.
윈도우는 버전이 11까지 왔는데도 아직까지
CP949를 써서 많은 사람들을 맥이고 있는데요.
레가시 호환성을 위하는 측면이니
빡치더라도 이해하고 가면 됩니다.
^w::
send,오늘의 날씨{enter}
Tools - SciTe Settings에서 codepage를
UTF-8로 변경하면 잘 작동합니다.
send, 오늘의 날씨{enter}는 구글검색이나
네이버 등 포탈에서 검색창에서 단축키를
입력하면 Enter를 생략해도
자동으로 날씨를 출력합니다.
이런 일상적인 검색은 Enter 키만 생략해도
삶의 질이 달라지는 것을 경험할 수 있습니다.
주식 투자를 하는 사람들은 검색어를
구글 주가, 삼성 주가 등으로 변경하면
지정한 단축키 만으로 원하는 검색결과를
바로 볼 수 있기 때문에 상당히 좋습니다.
별거 아니지만 주식하는 분들은 습관적으로
검색어를 입력하기 때문에 1초라도 더 빠르게
결과를 볼 수 있다는 것은 쓸만합니다.
오토핫키 스크립트를 사용하면
더 많은 일을 할 수 있습니다.
기본적으로 프로그래밍 언어이기 때문에
어떤 로직을 넣고 여러가지 제어를 할 수 있습니다.
하지만 이 정도만 사용해도 코딩을
전혀 모르는 일반인도 유용합니다.
이 프로그램의 진가를 높이 평가하는
사람들은 윈도우 최고의 유틸이라고도
하는데요. (WSL를 쓰면 리눅스도 가능하지만)
약간 프로그램 개발사들에게는
골치거리기도 합니다.
모든 사람이 오토핫키를 사용하면
게임 개발 처음부터 오토핫키 매크로를
방지하기 위한 로직을 강화해야 하기
때문인데요. 이 논쟁은 꽤 오래전부터
있었던 것으로 압니다. 노골적으로
작업장을 만드는 것은 당연히 문제지만
사용자가 직접 인터페이스를 만드는데
사용하는 부분까지 컨트롤해야하는가?
라는 정책적 문제가 있을 수 있기 때문입니다.
(게임의 ui를 마음에 안들어하는
사용자가 있을 수도 있다)
단축키나 매크로는 딱히 오토핫키가 아니라
파이썬으로도 쉽게 만들수 있기 때문에
이런 것들을 원천적으로 검열한다는 개념이
pc게임에서는 좀 정서상 맞지는 않습니다.
그럴려면 콘솔게임으로 출시를 해야지
pc커뮤니티에서는 논쟁이 될 수 있습니다.
이번 포스팅은 가볍게 작성하려 했는데
오토핫키의 이름 처럼 HOT 하다 보니까
약간 진중해졌는데 보는 관점에 따라
호불호가 갈릴 수 있습니다.
다음 튜토리얼에서 조금 더 응용하는
내용을 추가하도록 하겠습니다