본문 바로가기

반응형

안녕하세요. 이번 강좌에서는 무한으로 계속 반복해서 클릭을 하는 오토마우스를 만들어 볼 생각입니다.

먼저 간단한 예제를 하나 보여드리고 하나하나씩 뜯어서 설명해드리겠습니다.

사실 컴퓨터 언어는 반복해서 실력을 늘리며 공부해서 뜻을 알아가는 것이라고 생각합니다.

 

start := 0

F1::
start = 1
loop{
    if(start = 1){
        MouseClick, left
        Sleep 25
    }else if(start = 0)
        break
} return

F2::
start = 0
return
		

제가 평소에 가장 많이 사용하는 오토마우스 코딩입니다.

앞의 공백은 'Tab' 키를 눌러서 거리를 벌려주세요.

오토핫키가 줄을 맞춰야 하는 언어인지 기억이 나지 않지만

만약 다른 언어를 사용할 일이 생긴다면 줄을 맞추지 않으면 오류가 생기는 경우도 있습니다.

그렇기 때문에 코딩을 할 때에는 줄을 맞추는 버릇을 들이는 것이 좋다고 생각합니다.

 

그리고 위 코딩과 직접 적은 코드와 매칭 되는 색깔이 다를 수 있는데

포스팅에 코딩한 것을 나타낼 때 오토핫키를 지원을 안 해서 C언어를 기반으로 적어서 다를 수 있습니다.

당황하지 마시고 똑같이 적으시면 작동하실겁니다.

 

1. start := 0

이것을 이해하기 위해서는 변수라는 개념에 대해서 알아야 합니다.

간단하게 말하면 그저 변하는 수라고 야매로 외워도 괜찮나?지만 사실 변수는 숫자가 아닙니다.

 

변수란 값을 저장하기 위해 만든 이름입니다.

빈 공간을 만들어 이름을 붙여주고 그곳에 자신이 원하는 값을 저장하는 것입니다.

 

마우스를 반복해서 클릭을 하는 프로그램이기에 ON/OFF의 기능이 필요합니다.

그렇기에 변수에 '0'이라는 값을 넣어주고 그 변수가 '0'일 경우에 반복을 하지 않게 하기 위해서 만든 것입니다.

만약 이 변수를 만들어주지 않는다면 프로그램을 켠 순간 끌 때까지 계속 클릭을 반복할 것이고

그렇다면 매우 불편할 것입니다.

 

그래서 그냥 ON/OFF를 위해서 변수를 만들었습니다.

 

그리고 가운데에 있는 ':='는 연산자 중에 대입 연산자입니다.

변수에 값을 집어넣는 대입 연산자로 우측에 있는 '0' 을 변수에 넣어주는 것입니다.

 

2. F1:: , F2::

이것은 긴 설명이 필요 없습니다.

그저 'F1'을 눌렀을 때 F1:: 아래에 있는 코드를 실행하는 것이고

'F2'를 눌렀을 때 F2:: 아래에 있는 코드를 실행하는 것입니다.

 

3. start = 1

start의 값을 '1' 로 변경합니다.

이전까지 start의 값은 '0' 이었지만 이 문장 이후로 '1' 변경합니다.

 

4. loop{}

loop란 사전적 의미로 고리라는 말도 있지만 반복이라는 뜻도 있죠.

여러분이 생각하는 그것이 맞을 겁니다. 저 '{}' 중괄호 안에 있는 것들을 계속 반복하는 것입니다.

저희가 만드는 것은 마우스 클릭을 무한으로 반복하는 것이기 때문에 반복이란 의미의 loop 함수가 들어갑니다.

 

5. if(start = 1){}

if란 '만약~' 라는 사전적 의미를 가지고 있습니다.

프로그래밍 언어에서는 조건문의 기본적인 형태입니다.

조건문이란 선택지를 만들어 그 조건에 맞을 경우 실행되는 것을 말합니다.

 

사용 예시로 'if(조건문){실행문}' 이 있습니다.

조건문이 'TRUE(진실)' 일 경우에 실행문이 실행되는 것입니다.

즉 'if(start = 1)' 이란 'start' 라는 변수의 값이 '1' 일 경우라는 뜻입니다.

 

저희는 위에서 'start = 1' 이라고 선언을 해서 'start' 는 '1' 이입니다.

그렇기에 'start' 가 '1' 인가? 라는 조건에 진실이라는 결과가 나옵니다.

그렇게 되어 '{}' 중괄호 안에 있는 것을 실행합니다.

 

6. MouseClick, (Left or Right), X, Y, ClickCount, Speed, (Down or Up)

MouseClick : 마우스를 클릭한다.

(Left or Right) : 왼쪽 혹은 오른쪽

X, Y : 윈도우 상의 좌표

ClickCount : 클릭 횟수

Speed : 속도 (0~100) 낮을수록 빠르다.

(Down or Up) : 클릭 이후 계속 누르고 있을 것이다. 혹은 클릭 후 바로 뗄 것이다.

 

MouseClick, Left 는 결국 왼쪽 클릭을 1번 한다는 의미입니다.

 

7. Sleep, delay

이 코드를 적지 않으면 초당 1,000번의 클릭을 합니다.

그러나 너무 많은 클릭을 하면 컴퓨터가 렉이 걸리거나 프로그램이 견디지 못할 것입니다.

 

하지만 이 코드를 적고 delay 대신

'1000' 을 적는다면 1초에 한 번

'500' 을 적는다면 1초에 두 번

'100' 을 적는다면 1초에 열 번 클릭합니다.

 

8. else if(조건문){실행문}

else란 위의 if문이 아닐경우 앞의 코드를 실행합니다.

즉 지금은 앞에 if가 있기 때문에 앞의 if를 실행합니다.

 

9. break

loop에 멈추는 브레이크가 없다면 주체하지 않고 계속 달릴겁니다.

loop에게는 빨간불이 필요합니다. 그렇기에 이 함수가 존재합니다.

start가 0으로 돌아왔을 경우 break를 만들어 코드를 끝맺음 시켜줍니다.

 

10. return

이 return이 없다면 아래의 F2::를 넘어서 아래의 코드도 실행시켜버립니다.

그것을 막기위해 return을 적어줍니다.

 

나머지 이 아래의 값은 위의 함수들을 재사용한 것에 불과합니다.

결국 이렇게 짧은 코드로 간단한 개인용 오토마우스를 만들 수 있습니다.

댓글