pyautogui 매크로 만들기 사용법 기초



pyautogui 매크로 만들기 소개

pyautogui 매크로 만들기 사용법 기초를 알아본다. pyautogui는 파이썬 유저들에게 매크로 라이브러리로서 가장 사랑받은 패키지이다. 기본적으로 매크로라는 것은 컴퓨터 작업을 컴퓨터로 하여금 일을 시키는 프로그램을 말한다. 최근에는 오토핫키가 가장 많은 사랑을 받고 있는데, 파이썬 사용자들은 pyautogui 매크로 를 이용하여 경우에 데이터를 처리하고 매크로를 사용하는 법을 한번 알아두면 컴퓨터에서 많은 시간을 보내는 사람들은 업무효율을 극대화할 수 있다.

설치 – installation

pip install pyautogui

기본 기능

기본적으로 매크로라는 것은 모니터 화면에 특정 부위를 읽고 (캡처, 스크린샷) 마우스로 특정 위치를 클릭을 하고 키보드 타이핑을 하는 것을 기본으로 한다. 이 세가지만 기본기능을 먼저 충실히 알아두어야 한다.

pyautogui.size()   # 현재 화면 해상도
pyautogui.position()  # 마우스 현재 위치 (X, Y) 값으로 리턴
pyautogui.onScreen(x, y) #스크린상에 x,y 위치 좌표가 해당하는지 확인. 있으면 True 없으면 False # 이건 보통 쓸모 없음

마우스

pyautogui.moveTo(x, y) # 마우스 커서를 x, y 좌표로 이동 # 이동만 하고 클릭은 하지 않음
pyautogui.dragTo(500, 500, duration=0.5)  # 500, 500 위치로 0.5초에 걸쳐서(커서이동속도) 마우스 커서 이동. 

 pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')
# 마우스 클릭. x 값, y값 , 클릭수, 이동속도, 클릭할 버튼('left' 또는 'right' 지정)

pyautogui.rightClick(x=moveToX,  y=moveToY)  #우클릭
pyautogui.middleClick(x=moveToX, y=moveToY)  #스크롤클릭
pyautogui.doubleClick(x=moveToX, y=moveToY)  #더블클릭
pyautogui.tripleClick(x=moveToX, y=moveToY)  #트리플클릭 (3번클릭)

pyautogui.mouseDown(x=moveToX, y=moveToY, button='left')
pyautogui.mouseUp(x=moveToX, y=moveToY, button='left')

키보드

pyautogui.typewrite('Hello world!\n', interval=secs_between_keys) # 키보드 타이핑. interval = 타이핑 속도, 작을수록 빠름

pyautogui.hotkey('ctrl', 'c')  #단축키 누르기
pyautogui.hotkey('ctrl', 'v')  #단축키 누르기

pyautogui.keyDown('backspace') #백스페이스 누르고 있음
pyautogui.keyUp('backspace') # 누르고 있던 백스페이스 해제

메시지 기능

pyautogui.alert('경고창 메세지 적는 곳') # 경고창 띄움. 메세지박스. #확인 버튼만 존재

vars = pyautogui.confirm('확인 또는 취소를 눌러보세요~~~') # 확인 또는 취소 버튼을 누를 수 있는 메시지 박스를 띄움. '확인'을 클릭하면 vars 에 'OK' 리턴, '취소'를 클릭하면 vars 에 'Cancel' 리턴

vars = pyautogui.prompt('문자를 적어보세요~') # 문자열을 적을 수 있는 경고창 띄움
#문자열을 적고 확인을 누르면 문자열이 vars 에 리턴

스크린샷 (screenshot)

pyautogui.screenshot('foo.png') # 전체화면을 캡처하여 foo.png 파일로 저장

temp = pyautogui.locateOnScreen('temp.png') #이미지서치
#현재 화면상에서 temp.png 파일과 일치하는 위치를 찾아서 영역 좌표를 리턴해준다.
# (1420, 854, 300, 200) <-- x, y, x위치로부터 오른쪽으로 300px, y로부터 200px 내려간 만큼의 사각 영역을 의미한다.

centerxy = pyautogui.center(temp) # 위 사각영역에서 한가운데 좌표를 리턴해준다.

pyautogui.click(centerxy) # 한가운데를 클릭한다.

centerxy = pyautogui.locateCenterOnScreen('temp.png') #한번에 이미지와 동일한 화면 위치의 가운데 좌표를 리턴해준다.

이상 pyautogui 매크로 사용법 기초를 알아보았고 보다 자세한 내용은 개별 글 발행하여 링크를 걸어두겠다. 원하는 내용의 글이 있는지는 pyautogui 카테고리를 확인하면 된다.

윈도우창 활성화

pyautogui 패키지를 벗어나지만 매크로를 만들 때 꼭 필요한 부분이라 추가한다. 매크로를 사용하다보면 특정 윈도우창을 활성화시켜야 할 때가 있다. 다음과 같이 하면 된다.

import pygetwindow as gw 
win = gw.getWindowsWithTitle('Chrome')[0] 
#윈도우 타이틀에 Chrome 이 있는 윈도우창 수집하여 리스트로 리턴. 여기서는 [0] 입력하여 첫번째  객체를 지정

win.activate() # 해당 윈도우를 활성화 

# 만약 에러가 자주 발생하면 아래 코드로 실행한다.
if win.isActive == False:
pywinauto.application.Application().connect(handle=win._hWnd).top_window().set_focus()
win.activate()

pyautogui.click(win.center) # 해당 윈도우창의 정가운데 클릭
pyautogui.click(win.left, win.top) # 해당 윈도우창의 가장 왼쪽 위를 클릭

pyautogui.click(win.left+50, win.top+50) # 해당 윈도우창의 가장 왼쪽 위에서 우로 50 밑으로 50 이동한 위치를 클릭

4 thoughts on “pyautogui 매크로 만들기 사용법 기초”

  1. 파이오토구이 이미지 캡춰기능으로 방문하고자 하는 싸이트의 메뉴를 선택해서 클릭하는데 까지는 되었는데 로그인을 위해서 팝업창이 뜰때 팝업창의 아이콘을 이미지 캡춰해서 클릭하려고 하니 작동하지가 않는데 이런경우 어떻게 하면 되나용?

    응답
    • 웹에서 특정 엘리먼트를 클릭하고 싶으신 경우에는 pyautogui 도 좋고 셀레니움으로 좌표를 구할 수도 있습니다. 물론 자바스크립트가 잘 작동한다면 셀레니움의 함수로 클릭하셔도 됩니다.

      응답

Leave a Comment