잡답 한 마디하자면 오토핫키를 처음 만났을 때 실행부터 다른 프로그램과 달리 처음부터 사용에 막혔는데 아무리 설치하고 실행해도
트레이에 흔한 아이콘도 없이 메뉴얼만 계속 뜨길래 프로그램을 잘못 다운받고 설치 한 줄 알았습니다.
AutoHotkey(오토핫키 설치 및 실행)
https://autohotkey.com/download
에서 다운받을 수 있습니다.
설치하고 au3_spy.exe , autohotkey.exe , installer.ahk의 파일만 다른 폴더 아무 곳에 이동하면 무설치판이 됩니다.
기존 설치 폴더는 언인스톨로 삭제해도 되고 물론 설치판이 마음에 들면 그대로 사용해도 됩니다.무설치판인 경우 탐색기 우클릭으로
AHK를 생성하는 메뉴는 없지만..이게 자주 사용하는 메뉴도 아니고 메모장이나 기존 AHK 파일을 편집해도 됩니다.
공식 홈피 무설치 판에는 au3_spy.exe라는 파일이 없습니다.ahk로 대체되어 있는데 초보한테는 같은 아이콘으로 작업표시줄에 표시
되서 헷갈립니다.(물론 변경할 순 있는데 귀찮아요.)
그리고 autohotkey.exe , installer.ahk의 2개 파일을 임의로 같은 이름으로 변경합니다.같은 이름이 아닐 경우에는
내 문서에 autohotkey.ahk 파일이라는 이름으로 있어야 합니다.
이름 변경한 installer.ahk 파일의 메모장의 내용을 모두 지웁니다.(이 경우 메뉴얼은 사라집니다만
구글링하면 더 자세한 사용법 많이 나옵니다.)
3번째 사진을 참고하여 #J::run Taskmgr ; Win+J키를 누르면 작업관리자가 실행된다를 입력합니다.
사진에서 알 수 있듯이..win + J키(사용자가 누르는 키)를 누르면 작업관리자(컴퓨터 명령)가 실행된다는 스크립트 내용입니다.
; 는 주석,즉 실제로는 실행되지 않는 명령으로 메모장이나 문서 편집기에서 해당 스크립트가 뭔지 쉽게 알 수 있는
간단한 설명이라고 보면 됩니다.주석이 있다면 해당 스크립트의 검색도 쉽죠
오토핫키 기본 스크립트
오토핫키에서 특정키는 약어로 표시할 수 있습니다. Ctrl은 ^ , Alt은 ! , Shift는 + ,Win는 #입니다.
^+T는 Ctrl+Shift+T라는 뜻이죠.눈치빠른 분은 지금까지 설명한 것만으로도 단축키를 이용한 프로그램 실행이 가능합니다.
당연하지만 단축키는 설명을 위한 예제이며 꼭 따라할 필요는 없습니다.
Run은 프로그램을 실행하는 명령어입니다.
사용자가 누르는 키::run 프로그램 경로 및 실행파일
사용자가 누르는 키::run http://사이트 주소
간단한 예제로 살펴봅시다.
예제
F6::run mspaint ; F6키로 그림판 실행
#N::run Notepad ; Win + N 키로 메모장 실행
#G::run http://google.com ; Win+G키를 누르면 기본 브라우저로 구글에 접속한다.크롬이 기본 브라우저가 아닌데 사이트에
접속하고 싶다면
#G::run C:\Program Files (x86)\Google\Chrome\Application\chrome.exe "http://google.com" ;
Win+G키를 누르면 크롬으로 구글에 접속한다.
#E::run C:\Windows\explorer.exe E:\Download ; 탐색기 초기 시작 폴더 변경
단축키로 프로그램을 실행하는 스크립트입니다..프로그램에 변수나 파라메터도 입력가능합니다.
이를 이용해 탐색기를 단축키로 실행하는 경우 초기 시작 폴더를 변경할 수 있죠.
!+b:: ; Alt + shift + b키로 바이두 프로그램 한 번에 종료
run taskkill /f /im baidunetdisk.exe,,hide
return
바이두 같은 프로그램은 alt + f4키나 종료 버튼으로 종료해도 바로 종료되지 않고 트레이 아이콘에 살아 남습니다.
run taskkill /f /im 프로그램 실행 파일명,,hide
taskkill 윈도우의 프로세스(프로그램)을 종료하는 내장 명령어입니다. /f는 강제 옵션 /im은 이미지 파일(프로그램이름)을 의미하며
,,hide는 도스창을 숨기는 옵션입니다.샐행중인 프로세스를 종료하는 것이니 프로그램의 경로 입력은 필요없습니다.
쉽게 이야기해서 단축키로 바로 해당 프로그램(프로세스)를 종료한다는 뜻이죠.
위에서 설명한 스크립트와 달리 여러 줄의 스크립트에는 return으로 꼭 마무리 해야합니다.한 줄 스크립트는 상관없습니다.
return을 입력하지 않으면 다음 줄의 스크립트가 자동으로 실행됩니다.
오토핫키의 트레이 아이콘 메뉴
아무튼 저장하고 autohotkey.exe를 실행하면 트레이 아이콘이 생깁니다.
트레이 아이콘을 우클릭하면 여러 메뉴가 생깁니다.
Window Spy - 위에서 설명한 AU3_Spy.exe 프로그램 실행 메뉴입니다.
Reload This Script - AHK 파일에 저장한 스크립트를 다시 읽습니다..당연하지만 AHK 파일에 스크립트를 입력하고 저장만 한다고 해서
자동으로 해당 스크립트가 실행되는 건 아닙니다.
Edit This Script - AHK 파일을 탐색기에서 열지 않고 바로 엽니다.
Suspend Hotkeys - 오토핫키를 잠시 중지합니다.
Pause Script - 매크로 기능을 사용할 때 멈춥니다.
Exit - 오토핫키를 종료합니다.
물론 위의 메뉴를 수동으로 일일히 클릭하는 건 번거롭죠..역시 단축키로 사용 가능합니다.
!A::run E:\AU3_Spy.exe ; Alt +A키로 AU3_Spy 프로그램을 실행
!s::Suspend ; Alt+S키로 오토핫키의 작동을 멈춘다.
Reload This Script 와 Edit This Script는 reload와 Edit로 사용가능합니다만 그렇게 사용하면 불편합니다.
읽기만 하고 파일만 불러오고 저장은 안 하니깐요.
Send는 Run과 비슷하니 예제로 마무리합니다.대신 F1,Space,Enter같은 키는 컴퓨터 명령 부분에만 {}를 입력해야 합니다.
F1::Send ^{f1} ; ctrl + F1 키를 쏠모없는 F1로 변경
#x::Send ^{f2} ; ctrl + F2 키를 Win + X 키로 변경
F3::Send +^T ; Shift + Ctrl + t 키를 F3으로 변경
AU3_SPY.EXE는 창의 정보를 보는 프로그램입니다.
이 프로그램을 실행해서 다른 프로그램을 선택하면 해당 프로그램의 캡션(제목),클래스명등을 조회할 수 있습니다.
ahk_class에 있는 이름이 프로그램의 클래스 명입니다.
WinMinimize A 현재창을 최소화
WinRestore A 현재창을 이전 크기
WinMaximize A 현재창을 최대화
winactivate 해당 창을 활성화한다.
#ifWinActive 해당 프로그램에서만 실행한다.
WinWaitActive 해당 프로그램의 실행을 기다린다.
winmove 해당 창 크기 및 위치 조절
ifwinexist 창의 참,거짓(실행중이면 , 아니면 )
창에 관련된 명령어도 많습니다만 보통 제가 자주 쓰는 건 이 정도입니다.
창 캡션을 이용할 때에는
#ifWinActive 제목 없음 - 그림판
창 명령어와 창 캡션명을 입력하고
클래스명을 이용할 때에는
#ifWinActive ahk_class MSPaintApp
즉 창 명령어와 ahk_class와 클래스명을 입력한다는 것을 구분해서 써주면 됩니다.
일일히 설명하기 힘드니 예제와 주석을 보고 파악합시다.구글링하면 다 나옵니다.
잘 모르겠으면 예제에서 사용자가 누르는 단축키와 프로그램의 경로 및 실행 파일만 변경해서 사용하면 됩니다.
+^D:: ; shift + D키를 누르면
ifwinexist ahk_class MediaPlayerClassicW ; MPC-HC가 실행중이면
{
winactivate ; 해당 창을 활성화한다.
}
else
{
Run C:\Program Files\MPC-HC\mpc-hc64.exe ; 실행중이 아니면 MPC-HC를 실행해서
sleep 500 ; 0.5초후에
winactivate ; 해당 창을 활성화한다.
}
return
sleep 시간은 다음 스크립트를 기다렸다가 실행하는 것입니다.
예를 들어 5초후에 프로그램이 실행되고 해당 스크립트를 실행해야 하는데 1초후에 스크립트를 실행하면 실패되겠죠?
1000은 약 1초입니다.
^E:: Ctrl + E를 누르면
ifwinexist Autohotkey.ahk - 메모장 ; Autohotkey.ahk - 메모장이라는 창 제목이 실행중이면
{
winactivate ; 해당 창을 활성화한다.
send ^s ; Ctrl +S를 누른다.즉 저장한다는 뜻
reload ; 오토핫키의 스크립트를 다시 읽는다.
soundbeep ; 비프음 재생해서 확인
}
else
{
edit ; 실행중이 아니면 AHK 파일을 메모장으로 연다.
sleep 500 ; 0.5초후에
send ^s ; Ctrl +S를 누른다.즉 저장한다는 뜻
reload ; 오토핫키의 스크립트를 다시 읽는다.
soundbeep ; 비프음 재생해서 확인
}
return
쉽게 이야기해서 AHK 파일의 창 캡션(제목)을 판단하여 실행중이거나 아니거나 오토핫키의 AHK 파일을 바로 열어서
자동으로 읽고 저장하는 겁니다. reload와 edit를 각각 할 필요가 없죠
#ifWinActive ahk_class MSPaintApp ; 그림판에서
MButton::send !{F4} ; 휠버튼을 클릭하면 Alt+F4를 누른다.(즉 그림판을 종료한다.)
#ifWinActive ahk_class Notepad ; 메모장에서
MButton::send !{F4} ; 휠버튼을 클릭하면 Alt+F4를 누른다.(즉 메모장을 종료한다.)
return ; 종료한다
#IfwinActive
#IfwinActive는 해당 창 제목 및 프로그램에서만 단축키를 실행하는 명령어로 여러 줄의 스크립트이니 역시 return을 입력하고
마찬가지로 #IfwinActive로 마무리 해야합니다.
이것을 활용하여 특정 프로그램에서만 단축키가 사용가능하게 할 수 있습니다.
단축키로 브라우저를 순차적으로 실행하면서 설정한 대로 창의 위치를 배치하고 같은 크기로 조절하는 예제
+F1:: ; Shift + F1 키를 누르면
Run C:\Program Files (x86)\Internet Explorer\iexplore.exe "http://google.com"
WinWaitActive Google - Internet Explorer
winmove a,, 0 , 0 , 800 , 800
Run C:\Program Files (x86)\Internet Explorer\iexplore.exe "http://www.clien.netCLIEN"
WinWaitActive 클리앙에 오신 것을 환영합니다. - Internet Explorer
winmove a,, 800 , 0 , 800 , 800
Run C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --new-window "http://naver.com"
WinWaitActive NAVER - http://www.naver.com/ - Chrome
WinRestore,a
winmove a,, 0 , 800 , 800 , 800
Run C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --new-window "http://www.clien.netCLIEN"
WinWaitActive 클리앙에 오신 것을 환영합니다. - http://www.clien.net/CLIEN - Chrome
WinRestore,a
winmove a,, 800 , 800 , 800 , 800
return
복잡해보이지만 밑의 스크립트를 순차적으로 입력하면 됩니다.
Run 브라우저 경로 및 실행 파일 "사이트 주소"
WinWaitActive 사이트 제목 ; 사이트 제목으로 해당 창이 로딩될 때까지 기다린다는 뜻
(안 하면 로딩완료전에 창 조절 스크립트 실행해서 창 조절 실패)
winmove a,, X축 창 위치 , Y축 창 위치 , X축 창 크기 , Y축 창 크기
WinRestore,a ; 크롬은 전체 화면에서는 창 크기가 변경되지 않으므로 이전 크기로 변경하고 창 크기를 조절하는 편법을 사용
--new-window ; 크롬을 새 창으로 띄우는 크롬의 파라메터
간단한 키보드 매크로 정도라면 아래 프로그램을 이용하는 게 쉽고 괜찮을 것 같네요
https://wp.me/po5hm-eW
AutoHotKey를 조금은 편하게 사용할 수 있도록 도와주는 프로그램도 있네요.
https://blog.naver.com/skionskion/222712767360
from CV
from CV
궁금한게 2가지 있는데요
설정한 핫키를 특정 프로그램에만 적용할 수 있을까요? 제가 주로 게임을 해서 게임할때 유용할 것 같아요
또 하나는 한개 키로 두개키를 동시에 누르는 기능도 설정 가능할까요? 가령 키보드 a를 누르면 b+c 가 동시에 눌린것처럼 설정 가능할까요?
from CV
send, ^c
winactivate, 네이버
send, ^v
send,{enter}winactivate, 엑셀파일명~~
send,{up}
send, ^c
return
이라고 하면 두번째 부터는 네이버라는 창이 없어져버리고검색한
상호명으로 바껴버려서 다시 네이버를 띄워놓고 F1키 실행해야 하는 문제가 있습니다.
그래서 알려주신 방법을 응용해서
run C:\Program Files (x86)\Google\Chrome\Application\chrome.exe "http://www.naver.com" ;
sleep, 2500
winactivate, naver
sleep, 500
send, ^v
send, {enter}
return
요렇게 해서 성공했습니다.
문제는 할때 마다 크롬의 탭이 계속 늘어나는데 기존 탭에서 다시 네이버로 돌아가서
컨트롤 V하려면 어떻게 하면 좋을까요?
특정 위치에 클릭하기를 하려면 숫자를 조금씩 늘려보고 안맞으면 다시 조절하고 많이 반복해야 하는데
마우스를 찍어서 그 위치가 어딘지 자동으로 표시해주는 방법이나? 쉽게 하는 방법이 있을까요?
예를들면 mouseclick, l, 120, 670
했는데 120은 작아서 130했다가 140했다가 조정하는 시간이 오래 걸림