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
Posted by Weneedu
,


출처: https://privatedevelopnote.tistory.com/81 [개인노트]