20200503 1132
00 개요
Text Expansion이 주요 내용이다. 에 중점을 두고 있다.
오토핫키는 Mac, Linux에서 돌아가지 않는다.
portable version은 관리자 권한 없이 사용할 수 있다.
AH가 사라질까봐 걱정인가? 걱정마라. Autohotkey 재단foundation이 있다.
(설치형)AutoHotkey_1.1.2.3.04_setup 파일을 실행해서 설치한다.
(무설치형) 설치없이 AH사용하기: portable 파일을 받아 압축을 풀고, AutoHotheyU64.exe를 원하곳으로 옮긴 뒤 실행하면 된다.
^F5::reload
기존에 돌아가고 있던 AH의 코드를 수정한 뒤 바로 적용할 수 있다.
*reload = 스크립트파일을 다시 읽고 해당 파일의 모든 코드를 실행한다.
(암기) ^(hat, carot) "C"arot = "C"ontrol
★ 버전관리앱; fossil revision control system
01 느낌표 출력하기
예를 들어 다음 코드를 생각해보자.
::hw::Hello World!
실행해보면,
Hello World ⇒ 느낌표가 안 찍힌다.
만약 당신이 경험있는 개발자라면 exclamation point(`)표를 느낌표 앞에 찍어 볼 것이다. 보통의 프로그래밍 언어가 그러하듯이.
::hw::Hello World`!
실행해보면,
Hello World ⇒ 역시나 마찬가진다.
즉, AH는 보통의 프로그래밍 언어가 아니다!(★) AH는 유용한 kludge(일본어 번역; 응급수리, wiki)를 모아 놓은 것이다. 결합력있게 설계된 시스템 cohesively designed system이 아니라는 뜻이다*.
* 그러한 연유로 AH v2에서는 언어를 재작성하여 일관성있게 설계된 결합력있는 것으로 만들려고 노력을 했다. 하지만 v2는 아직 완성되지 않았으므로 알아서(at your own risk) 사용해야 한다. 수시로 변경될 수 있다.
최종적으로 정답은 다음과 같다.
::hw::Hello World{!}
실행해보면,
Hello World! ; bingo!!
02 두 가지 text expansion options : ① immediate expansion, ② expansion within a word
1/ 즉시 실행; 종료 문자 ending character가 없이 실행되는 것을 의미한다.
종료문자는 공백, 엔터, 탭, 물음표 등이 있다.
땡땡 사이에 별표를 넣어 주면 된다.
:*:hw::Hello World{!}
실행해보면,
Hello World! ; hw를 치자마자 적용된다.
★ hotstring 앞에 콜론 두 개가 있는 이유 ⇒ 즉시 실행과 단어내 실행 옵션을 주기 위해서 이다.(암기)
2/ 단어내 실행; 지정된 문자가 독립적을 존재하지 않아도 실행된다.
땡땡사이에 물음표를 넣어주면 된다.
:?:hi::Hello World{!}
실행해보면,
sunHello World! ; sunhi가 이렇게 변했다!
3/ 두 옵션을 모두 적용하고 싶다면?
땡땡사이에 물음표 별을 투입한다.
:?*:hi::Hello World{!}
4/ 두 옵션이 실행 중인 상태에서 두 옵션을 적용하지 않고 싶다면?
h를 쓰고 좌측화살표 then 우측화살표를 쓰고나서 i를 넣으면 된다.
03 날짜 시간 넣기
::td::
SendInput %A_YYYY%-%A_MM%-%A_DD% %A_Hour%:%A_Min%
실행해보면
2020-05-03 12:26
이 이외에 다른 형식 AM, PM 등을 쓰려면 FormatTime 명령을 사용해야 한다.
04 여러줄 삽입하기
::longline::
{
SendInput one line of text.{enter}
SendInput {tab}Another line of {ASC 0151}indented{ASC 0151}text.
}
return
실행해보면,
one line of text.
Another line of —indented—text.
다음과 같이 쓸 수도 있다.
::ll::
(
one line
second line
no variable
)
return
실행해보면,
one line
second line
no variable
03 기호넣기
1/아스키 코드를 이용한다.
::test:: {ASC 0169}
0169 ⇒ © ;
* {ASC 169}도 Ok, ::test:: 와 {ASC 169}를 다른 줄에 쓰면 안된다.
2/ 유니코드도 넣을 수 있다.
::un::{U+2265}
≥
04 Remapping keys
기존에 등록된 단축키를 변경 또는
글쇠의 정의를 바꾸기도 가능하다.
※ "Kinesis Advantage 2"라는 키보드는 물리적으로(at the physical level) 키드보 매핑을 변경한다.
05 사용자정의 단축키 만들기
#f3::
input Key, L1
if Key=m
run chrome.exe https://m.daum.net
else if Key=p
run chrome.exe https://m.naver.com
return
06 윈도우 창 이름 찾기, loosen; SetTitleMatchMode
SetTitleMatchMode, 2 ;; 특정 문자가 윈도우 타이틀 안에 있으면 해당 창을 찾아 준다.
프로그램 중에 한번만 설정하면 된다. 따라서 코드 맨 앞에 보통 사용한다.
07 숨겨진 창 찾기, DetectHiddenWindows
08 사용 사례
1/ text expansion; 회사이름, 이메일주소, 전화번호, 긴 이름을 가진 anyting
2/ boilerplate(상용구, 템플릿); Please let me know if you have any questions or concerns.
3/ 단축키로 자주가는 웹사이트 열기, 자주 사용하는 프로그램 열기
#w:: run winword.exe
F6::run chrome.exe /new-window www.google.com ; open new window
4/ 윈도우 다루기 control
WinHIde, WinMinimize, WinShow,
'[PA] 업무자동화 > [AH]Autohotkey' 카테고리의 다른 글
AH 책, Practical Video Game Bots (0) | 2020.05.03 |
---|---|
AH 책, AutoIt v3 (0) | 2020.05.03 |
AH 특정시간에 실행 (0) | 2020.04.29 |
AH Textbox 암호표시 (0) | 2020.04.28 |
AH 엑셀 as CSV or 탭구분데이터 (0) | 2020.04.28 |