[AutoHotKey] 마우스, 키보드, IF

마우스
AHK를 이용하여 마우스를 이동, 클릭할수 있습니다.

자신의 해상도가 1024,768 이라고 가정하면
화면의 좌상 X,Y 위치를 0,0 우하 부분은 1024,768 이됩니다.


-마우스이동
마우스의 이동은 mousemove 라는 명령어를 이용합니다.
우선 (100,100) (200,200) (300,300) (400,400) (500,500)
이렇게 5개의 좌표를 이동해 봅시다.

mousemove, 100,100
sleep, 1000
mousemove, 200,200
sleep, 1000
mousemove, 300,300
sleep, 1000
mousemove, 400,400
sleep, 1000
mousemove, 500,500

이를 저장하고 실행시키면 마우스가 좌측상단으로부터
대각선방향으로 움직이는것을 볼수있습니다. (바탕화면우클릭-새로만들기-AHK스크립트-수정)

* sleep
딜레이를(대기시간) 주는 명령어 밀리세컨드단위로 기입,
즉 1초는 1000밀리세컨드 500은 0.5초 60000은 1분 (60초)
sleep,1000 (1초간 대기)


-마우스클릭
mouseclick 이라는 명령어를 이용하며
좌클릭시 mouseclick, left,x좌표,y좌표 ;좌표로 이동하여 클릭
우클릭시 mouseclick,right,x좌표,y좌표 ;좌표로 이동하여 클릭
mouseclick,left ;좌표생략시 마우스 현재위치 클릭

mouseclick, right, 100,100
sleep, 1000
mouseclick, right, 200,200
sleep, 1000
mouseclick, right, 300,300
sleep, 1000
mouseclick, right, 400,400
sleep, 1000
mouseclick, right, 500,500

실행시 마우스가 이동하면서 우클릭을 하는것을 볼수 있습니다.

* 마우스위치찾기
오토핫키를 설치하고 프로그램폴더에 autolt3 window spy 를 실행시면
두번째 문단에 Mouse Position 라는것이 보이고
On Screen : xxx,yyy
In Active Window : xxx,yyy
이렇게 두개가 보이는데 On Screen에 나오는 것은 화면에서의 좌표
In Active windows 에 보이는것은 현재 활성화된 창의 좌상부분을 기준으로 하는 좌표입니다.


-키보드입력
키보드 입력은 send 라는 명령어를 이용합니다.

F1::
send, hi

위를 저장하고 실행을 하면 아무일도 일어나지 않습니다.
실행후 F1버튼을 누르면 hi라고 타이핑을 합니다.

F1::
send, hi{enter}hellow

중간에 {enter}를 넣어서 엔터를 치게 합니다. (enter라는 키를 눌러라)

*핫키설정
F1:: 가 의미하는것은 F1버튼을 핫키로 설정한다. 라는 의미입니다. 즉 실행키가 됩니다.
F2::pause F2버튼을 일시정지로 만듭니다.
F3::exitapp F3버튼을 종료키로 만듭니다.


한글입력
send, 한글
하면 한글이 깨져서 나옵니다.

send, {vk14}gksrmf{vk14} ;한영키 gksrmf 한영키

이런식으로 한글을 입력하는 방법이 있습니다.
vk14 = 한영키


반복구문
원하는 부분을 반복할수 있습니다. loop 라는 명령어를 사용하고 반복하려는 부분을{}로 묶는게 좋습니다.
loop, 횟수 (횟수 생략시 무한반복)

F1::
loop, 5
{
send, hi{enter}
}
return
F2::
loop
{
send, hi{enter}
break
}
return

F1- hi를 치고 엔터 - 5회 반복합니다.
F2- hi엔터 한번

* break
반복중에 반복문을 탈출할때 사용합니다.
조건에 따라 break를 사용하여 반복구문을 빠져나올수 있습니다.

* return
스크립트의 내용을 진행하다 return 이 나오면 스크립트를 되돌립니다.
여러개의 핫키를 사용할때 return을 적어주지 않으면 처음부터 끝까지 실행해버립니다.
혹은 라벨이나 타이머 설정에 필요합니다.


변수
특정 문자를 변수로 지정하여 숫자나 문자를 입력할수 있습니다.

F1::
text = hellow
send, text %text%

위는 text라는 문자를 변수로 지정하고 그내용을 hellow로 대입한것입니다.
실행을 해보면 text hellow 이렇게 입력이 되는데 앞의 text는 변수로 쓰인것이 아닌
텍스트로 쓰인것이고 뒤의 %text%는 변수로 쓰인것입니다.

* %변수%
변수와 텍스트의 차이를 주기위해 변수의 앞뒤에 %를 붇여줍니다.


메시지박스
msgbox 라는 명령어를 사용하며, 내용물이 담긴 메세지창을 하나 엽니다. (한글 가능)

msgbox, 할말

해보시면 압니다. 말이 필요없습니다.


논리 IF & else (참or거짓)
IF - 만약 삐리리라면 스크립트 실행
Else - IF후 만약 삐리리가 아니라면 스크립트 실행

F1::
number = 1234 ; number라는 변수에 1234 입력
if number = 1234 ;만약 number가 1234이면 다음 {} 실행
{
msgbox, number가 1234맞다
}
else ;만약 number가 1234가 아니면 다음 {}실행
{
msgbox, number가 1234가 아니라 %number% 이다
}
return

그대로 실행하면- 메시지박스로 number가1234맞다,고 실행되고
첫줄의 1234를 다른수로 바꿔서 실행하면 - 메시지박스로number가 1234가 아니라 %number% 이다
라고 표시됩니다.

*
a=b a,b가같다
a>b a가 크다
a
a<>b a와 b가 다르다