잡담

화면 클릭 매크로

꾸욱꾸우욱 2022. 3. 9. 18:15

auto_click.py
0.00MB

최근 회사에 입사해서 교육을 듣고 있다. 그러던 중 안전 교육 이수를 해야 한다는 안내를 받았고 영상으로 학습을 진행 중이었으나, 한 가지 문제는 지나치게 자주 영상을 넘겨야 했다는 점이다. 이를 위해 파이썬으로 매크로를 제작해 자동으로 클릭을 해주도록 하였다.


우선 사용한 라이브러리는 pyautogui로 마우스, 키보드 입력을 자동화 해주는 라이브러리이다.

다음의 명령을 cmd에 입력하여 설치 가능하다.

pip install pyautogui

 

다음으로는 실제 작성한 코드이다.

import pyautogui
import time

print('position the cursor where you want')
time.sleep(1)

for i in range(3, 0, -1):
    print(i)
    time.sleep(1)

x, y = pyautogui.position()
print('cursor position ({}, {})'.format(x, y))

pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True

count = 1
while True:
    time.sleep(30)
    pyautogui.click(x, y, button = 'left', clicks = 2, interval = 0.3)
    print('button clicked {} times'.format(count))
    count += 1

 

필요한 라이브러리는 pyautogui와 time이다. 

먼저 클릭하고자 하는 곳의 좌표를 확인하기 위해 마우스 커서를 위치할 3초의 여유를 준다. 이 시간 안에 사용자는 마우스 커서를 위치시켜야 한다.

 

이후 확인된 커서의 ( x, y ) 좌표가 cursor position에 출력된다.

 

다음으로 pyautogui의 PAUSE와 FAILSAFE의 값을 변경 시켜준다. PAUSE는 pyautogui의 함수가 실행된 후에 딜레이 시간을 조절하는 함수로 현재 1초로 설정되어 있다. 다음으로 FAILSAFE는 커서 통제가 안 되는 상황을 대비해 주는 함수로 TRUE로 설정할 경우, 커서를 좌상단 끝쪽(0, 0)에 위치시켰을 때 강제 종료되도록 한다.

 

이후 참인 반복문을 돌면서 30초 마다 ( x, y ) 좌표를 0.3초 간격으로 2회 클릭하도록 한다. 더블 클릭하는 이유는 영상이 끝나지 않았는데 한 번만 클릭할 경우 그대로 멈춰 있을 수 있기 때문이다. 다음 영상으로 넘어가는 경우 딜레이로 인해 더블 클릭이 전달되지 않으므로 해당 방식으로 해도 무방했다.

 

이후 버튼이 클릭된 횟수를 출력해주고 코드를 마무리했다.


원하는 기업에 입사해 우수한 교육을 듣고 좋은 사람들을 만나고 있다. 덕분에 행복한 생활을 하고 있으니 매우 좋다. 조만간 해당 기업뿐만 아니라 취업을 위해 준비했던 나만의 노하우를 작성해볼까 한다. 

 

아래의 링크로 이동하면 exe파일을 받을 수 있다.

https://drive.google.com/file/d/14iZi7RHtcvmmTbgUNznLVtJaUrRn86r4/view?usp=sharing 

 

auto_click.exe

 

drive.google.com