728x90
728x90

오토핫키란?


매크로 기반 스크립트 언어

 

 

 

오토핫키 설치하기


1. 오토핫키 설치

https://www.autohotkey.com/

 

 

2. 편집기 설치

http://fincs.ahk4.net/scite4ahk/

 

  • 편집기 한글 깨짐 현상 : Tools > SciTE4AutoHotkey settings... > File codepage > Korean Wansung 수정
  • 실행은 F5키, 배포는 .exe 확장자로 변환 후 컴파일해서 배포
  • 컴파일 방법 : 스크립트 파일 저장 후 바탕화면에서 파일 우클릭>Complie Script

 

 

 

오토핫키 기본문법


  • 오토핫키 한 줄은 명령어 + 매개변수의 조합
  • 명령어와 매개변수, 매개변수와 매개변수 사이에는 콤마( , )를 사용해서 구분
  • 명령어는 하나만, 매개변수는 여러개 가능 (AAAA: 명령어, 나머지 매개변수)
  • 매개변수에 [ 대괄호 ] 가 쳐져있다면 생략 가능
AAAA, BBBB, CCCC, DDDD

 

 

 

변수에 값을 넣는 대입 연산자 작성법

 

var := 100
MsgBox, %var%

 

  • var라는 변수에 1을 대입한다는 뜻
  • 변수를 사용 시 % 기호로 변수를 감싸서 변수임을 표시
  • 산술연산자, 비교연산자는 일반적 문법과 같음

 

 

 

 

문자를 출력해주는 MsgBox : 알림창으로 Hello World 띄우기 (실행은 F5키)

 

MsgBox [, Options, Title, Text, Timeout]
Msgbox, Hello World!

 

  • Options에 숫자를 넣어 어떤 버튼과 아이콘을 표시할 지를 결정
  • 다른 유형의 옵션끼리 수를 더해서 두가지 옵션을 동시에 구현할 수 있음

 

번호 옵션 번호  옵션
0 확인 버튼만 표시 16 금지(X) 아이콘 표시
1 확인 / 취소 버튼 표시 32 물음표(?) 아이콘 표시
2 중단 / 다시 시도 / 무시 버튼 표시 48 주의(!) 아이콘 표시
3 예 / 아니오 / 취소 버튼 표시 64 정보(i) 아이콘 표시
4 예 / 아니오 버튼 표시 262144 MsgBox가 항상 위에 있도록 하기
5 다시 시도 / 취소 버튼 표시    
6 취소 / 다시 시도 / 계속 버튼 표시    

 

 

 

MsgBox, IfMsgBox

 

  • MsgBox의 버튼에 따라서 다른 행동을 하게 하려면 IfMsgBox라는 명령어를 사용 
IfMsgBox, ButtonName

 

번호 옵션 번호  ButtonName
0 확인 버튼만 표시 확인 OK
1 확인 / 취소 버튼 표시 취소 Cancel
2 중단 / 다시 시도 / 무시 버튼 표시 중단 Abort
3 예 / 아니오 / 취소 버튼 표시 다시시도 Retry
4 예 / 아니오 버튼 표시 무시 Ignore
5 다시 시도 / 취소 버튼 표시 Yes
6 취소 / 다시 시도 / 계속 버튼 표시 아니오 No
    계속 Continue

 

IfMsgBox와 MsgBox를 합치면

 

MsgBox [, Option, Title, Text, Timeout]
IfMsgBox, ButtonName
{
    // 버튼을 눌렀을 때 할 것
}

 

 

 

이스케이프 시퀀스

 

  • 뒤에 오는 문자가 특수한 기능을 할 경우 해당 특수 기능을 없애서 글자처럼 사용
  • '  : 오토핫키의 이스케이프 시퀀스
  • 'n : rogodanswk

 

 

 

 

핫키와 핫스트링

 

  • 핫키 : 어떤 키를 눌렀을 때 동작을 실행하게 할 단축키
  • A 키를 누르면 대화상자가 출력
  • 핫키를 여러개 조합하려면 아래 표의 문자로 대체
키::
A::
MsgBox, 안녕!
+!Z::
→ Shift + Alt + Z를 눌렀을 때

 

조합키 문자
Ctrl ^
Shift +
Alt !
Windows #

 

 

  • 핫스트링 : 특정 문자 입력 시 동작을 실행
  • apple을 입력하고 엔터키를 누르면 대화상자가 출력
::문자열::
::apple::
MsgBox, 사과!

 

 

  • 스크립트가 끝나도 수동종료 : 작업표시줄 트레이 아이콘 우클릭 > Exit
  • 자동종료 명령어 : ExitApp (매개변수 없음)
ExitApp

 

  • F1을 누르면 대화상자가 뜨면서 자동 종료되는 구문
F1::
MsgBox, 핫키를 눌렀습니다.
ExitApp

 

 

 

return

 

  • 스크립트 정지o 종료x
  • 각각 정지하며 F3을 눌렀을 때 비로소 스크립트 종료
F1::
MsgBox, F1을 눌렀습니다
return

F2::
MsgBox, F2를 눌렀습니다
return

F3::
Exitapp

 

 

 

Send : 키보드 대리 입력키

 

  • 키는 중괄호로 감쌀 것
  • 키에 핫키에서 배운 조합키를 이용할 수도 있음
  • 조합키의 영문자는 반드시 소문자 사용
  • 키는 문자열과 혼합해서 사용 가능
  • 조합키 단축기능 말고 문자 그대로 출력 시 SendRaw 사용
  • 누르는 동작은 {A Down} 떼는 동작은 {A Up}이며 띄어쓰기 필수
  • 방향키 : Up / Right / Left / Down
  • 넘버 패드 : Numpad(기호명)
  • 한영키 : {VK15}
  • 조합키 : !a나 !{a}의 꼴 모두 허용. 소문자주의!
  • 키 이름 뒤에 숫자를 적어서 중복 입력 구현 (Send, {A 5}는 A를 5번 누릅니다.)

 

Send, Keys
Send, {A}
Send, {Enter}
Send, {Tab}
Send, {Ctrl}

 

 

 

Sleep : 대기타기 (delay)

  • 스크립트에 지연 시간 부여
Sleep, DelayInMilliseconds
Send, {A}
Sleep, 1000

 

 

 

 

좌표

 

  • 스크린 좌표(절대 좌표) : Screen Coordinate. 현재 활성중인 창과 관계없이 무조건 원점(0,0)을 말함.
    즉 모니터 최상단 좌측
  • 상대 좌표 : Relative Coordinate. 활성창의 왼쪽 위를 원점(0,0)으로 설정하는 좌표체계
  • 둘 중 좌표 체계 선택 : CoordMode (default는 Relative)
  • TargetType : Pixel, Mouse
  • RelativeTo : Screen, Relative 
CoordMode, TargetType, RelativeTo

 

편집기 툴 안의 Active Window Info

 

 

 

 

MouseMove : 마우스 대체 이동

 

MouseMove, X, Y [, Speed]

 

  • X, Y에는 좌표가 들어감
  • Speed : 0~100까지. 0 : 즉시이동, 2 : 기본속도
  • 예제 : F1을 누르면 마우스 커서를 이동시키는 예제

 

CoordMode, Mouse, Screen

F1::
MouseMove, 500, 500
Sleep, 500
MouseMove, 700, 500
Sleep, 500
MouseMove, 700, 700
Sleep, 500
MouseMove, 500, 700
Sleep, 500
MouseMove, 500, 500
return

F2::
ExitApp

 

 

 

MouseClick : 마우스 대체 클릭

 

MouseClick [, WhichButton, X, Y, ClickCount]
CoordMode, Mouse, Screen
MouseClick, Left, 100, 100
Exitapp

 

 

 

MouseGetPos : 현재 마우스의 좌표 가져오기

MouseGetPos [, OutputVarX, OutputVarY]
CoordMode, Mouse, Screen
MouseGetPos, screenX, screenY
CoordMode, Mouse, Relative
MouseGetPos, relativeX, relativeY
CoordMode, Mouse, Client
MouseGetPos, clientX, clientY
MsgBox, 현재 마우스 좌표`n`n절대 좌표: %screenX%`, %screenY%`n상대 좌표: %relativeX%`, %relativeY%`n클라이언트 좌표: %clientX%`, %clientY%
Exitapp

 

 

 

 

반복문 : Loop

 

Loop [, Count]
Loop, 5
{
    MsgBox, %A_index%회 반복했습니다.
}
ExitApp

 

  • 반복문에서 반복할 부분은 중괄호로 감싼다
  • 중첩 반복 가능
  • 내장변수 A_index : 변수에 값을 대입하지 않아도 쓸 수 있으며 반복 횟수를 가리킴
  • Break : 반복문 탈출 명령어
  • 5단부터 7단까지 구구단을 대화상자에 띄워주는 예제

 

a := 4
b := 0
Loop, 3
{
	a++
	Loop, 9
	{
		b++
		MsgBox, % a " x " b " = " a * b
	}
	b := 0
}
ExitApp

 

 

 

 

조건문 :  if-else문, else-if문

 

if (var > 2)
{
    // var 변수가 2보다 클 때는 이 곳을 거치며
}
else
{
    // var 변수가 2보다 크지 않으면 이 곳을 거칩니다.
}

 

  • % 기호를 쓸 때 : 변수
  • 아닐 때 : 문자열, 괄호 안
  • 문자열은 " " 로 감싸주기

 

 

시간을 표시하는 내장 변수 

 

  • A_HourA_MinA_Sec
MsgBox, % "현재 시간: " A_Hour "시 " A_Min "분 " A_Sec "초"

 

 

 

 


아래 사이트를 보고 공부하면서 요약해보았습니다.

내용과 예시 출처 - 프날 : 세상에서 가장 쉬운 오토핫키 강좌

728x90
728x90
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v