AHK / ahk / 오토 핫 키 사용 / 오토핫키 / auto hotkey 정리 / auto hot key /automation / 자동화 / 윈도우즈 / 자동화 툴 /
update, 2021-03-05
- Introduction to Power Automate Desktop - Power Automate | Microsoft Docs
- MS, 작업 자동화 도구 Power Automate Desktop 무료화 발표 : 클리앙
windows 에서 Power Automate Desktop 을 무료화 했다. 설치를 하고, Log in 을 해야 사용할 수 있다. 결과적으로 internet 에 연결이 안되어 있으면 사용이 안된다.
AutoHotKey 사용
AutoHot Key 에서 macro 는 .ahk 라는 extension 을 가진 text file 을 편집해서 만들면 된다.
Docs
AutoHotKey 의 manual 은 다음 경로에서 확인할 수 있다.
Syntax
Tutorial > 5 - Commands vs. Functions()
Function 은 큰 제약이 없다. 우리가 흔히 다른 언어에서 쓰는 것처럼 사용하면 된다. 하지만 Command 는 조금 다르다. 다른 부분만 아래에 정리한다.
Command 의 제약
- 한줄에 Command 한개가 들어간다. 변수로 Command 를 넣는 것도 안된다.
- Command 에서 변수를 사용할 때는 %var% 처럼 % 로 둘러 싸야한다.
Assignment
':=', '=' 2개 모두 할당을 나타낸다. ':=' 가 최근 문법이며, 다양한 표현이 가능하다. '=' 은 제약이 따르고, 직관적이지 않다. 그냥 ':=' 만 존재한다고 생각하자.
':=' 와 '=' 의 차이에 대해서는 다음을 참고하자.
Hot Key / Hot String
Hot Key 는 key 뒤에 '::' 를 적어주면 된다.
esc::
MsgBox Escape!!!!
Return
; 이건 ctrl+k, a 이런식의 여러 character 를 입력받을 때 사용하면 된다.
^k::
Input userKey, I L1 ; input 1-character
Send %userKey%
Return
Hot String 은 key 앞과 뒤에 '::' 를 적어준다.
::btw::
MsgBox You typed "btw".
Return
특별히 몇개의 key 는 다른 symbol 을 사용한다.(여기를 참고하자.)
- # / Win (Windows logo key)
- ! / Alt
- ^ / Control
- + / Shift
- & / 2개 이상의 키를 동시에 누를 때 사용
특정 윈도우에서만 동작하도록 하려면
아래 문법을 사용할 수 있다.
- #IfWinActive
- #IfWinExist
#IfWinActive ahk_class Notepad
#IfWinActive
아래처럼 특정 window 를 실행할 수 있다.
; Retrieve the ID/HWND of the active window
id := WinExist("A")
MsgBox % id
; Press Win+↑ to maximize the active window
#Up::WinMaximize, A
; Activate a console window (e.g. cmd.exe)
WinActivate, ahk_class ConsoleWindowClass
WinActivate, ahk_id %VarContainingID%
WinActivate, ahk_pid %VarContainingPID%
; Define the group: Windows Explorer windows
GroupAdd, Explorer, ahk_class ExploreWClass ; Unused on Vista and later
GroupAdd, Explorer, ahk_class CabinetWClass
; Activate any window matching the above criteria
WinActivate, ahk_group Explorer
Spy++
hwnd 등을 알아내려면 spy++ 을 사용하면 된다. 대체로 Visual Studio 를 설치하면 같이 설치된다. Community 버전에도 들어있다. 경로는 아래와 같다.
- c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\spyxx.exe
그냥 아래의 WinSpy 를 이용해도 된다.
Keystrokes / Mouse clicks
key 를 누르거나, 마우스 클릭 같은 것은 Send* Command 를 이용하면 된다.
#SingleInstance
#SingleInstance force
#SingleInstance ignore
#SingleInstance off
- force : 새롭게 실행되는 instance 로 replace 시킨다.
- ignore : 기존의 것을 유지한다.
- off : 여러개의 instance 를 띄운다.
예제
#SingleInstance ignore
#IfWinActive ahk_class Notepad
; First Macro
^d::
Send +i
Send `;
Send ^v
MsgBox "Test"
Return
; Second Macro
^e::
; + Shift
; ^ ctrl
Send ^m
Send {Tab}
Send {Space}
Loop, 7
{
Send {Tab}
}
Send {Space}
Return
#IfWinActive
위 예제는 Notepad 에서 ctrl + d 를 누르면, 다음처럼 3개의 키가 입력된다.
- shift + i
- ;
- ctrl+v
'`' 는 escape 문자이다.
그리고 마지막에 MsgBox 가 뜬다.
launchy 를 이용한 실행
.ahk file 의 바로가기를 만들어서 그 바로가기를 실행시켰을 때는 auto hot key 가 system tray 에는 떠 있지만, 동작을 하지는 않았다. 이유는 모르겠다.
바로가기로 실행하는 것에 문제는 없었다. 다만 launchy 를 통한 실행은 문제가 됐다. 이건 launchy 에서 실행하는 방법에 문제가 있는 것 같다.
댓글 없음:
댓글 쓰기