파이썬 pyautogui 윈도우 프로그램 제어하기

파이썬 pyautogui 윈도우 프로그램 제어하기

pyautogui는 파이썬으로 윈도우 프로그램을 제어하기 위해 필요한 라이브러리입니다. pyautogui를 이용하면 윈도우의 키보드를 입력하거나 마우스를 이동하는 등 다양한 액션 코드들을 제작할 수 있어요.

pywinauto라는 라이브러리를 이용하면 보다 확실한 윈도우 프로그램들을 제어할 수 있다고 하는데 어제 배워보니 쉽진 않았네요. 대신 쉬운 로직으로 제어할 수 있는 pyautogui를 해봤습니다.

가장 먼저 가상환경을 실행하고, 활성화 시켜줍니다.

가상 환경이 실행되면 루트 앞에 (폴더이름)이 표시됩니다.

파이썬 pyautogui 설치하기

가상환경에 pyautogui 라이브러리를 설치합니다.

pip install pyautogui

가상환경을 사용하는 이유는 계속 업데이트되는 라이브러리들때문에 코드를 생성할 때는 정상 작동하던 프로그램이 충돌로 인해 오류가 나는 것을 방지하기 위해서 개발할 프로젝트마다 가상환경에서 작업하는 것이 편리하다고 합니다.

마우스 제어 함수

 >>>  import  pyautogui 
 >>>  screenWidth ,  screenHeight  =  pyautogui . size ()  # 화면의 너비와 높이라는 두 개의 정수를 반환합니다. (다중 모니터 설정의 기본 모니터.) 
    >>>  currentMouseX ,  currentMouseY  =  pyautogui . position ()  # 마우스 커서의 현재 위치의 x와 y라는 두 개의 정수를 반환합니다. 
    >>>  pyautogui . moveTo ( 100 ,  150 )  # 마우스를 x, y 좌표 100, 150으로 이동합니다. 
    >>>  pyautogui . click ()  # 현재 위치에서 마우스를 클릭합니다. 
    >>>  pyautogui . click ( 200 ,  220 )  # x, y 좌표 200, 220에서 마우스를 클릭합니다. 
    >>>  pyautogui . move ( None ,  10 )   # 마우스를 10픽셀 아래로 이동합니다. 즉, 현재 위치를 기준으로 마우스를 이동합니다. 
    >>>  pyautogui . doubleClick () #  >>> pyautogui 에서 마우스를 두 번 클릭합니다 

대표적으로 moveTo, click 함수를 많이 이용하게 되는데 윈도우를 제어할 때에는 마우스 이동이 필수이기 때문이죠.

키보드 제어 함수

pyautogui.write('hello world!') # 괄호 안의 문자를 타이핑 합니다.
pyperclip.copy("gi") # 클립보드에 텍스트를 복사합니다. 
pyautogui.press('shift') # shift 키를 누릅니다.
pyautogui.press('ctrl') # ctrl 키를 누릅니다. 

pyautogui.keyDown('ctrl') # ctrl 키를 누른 상태를 유지합니다.
pyautogui.press('c') # c key를 입력합니다. 
pyautogui.keyUp('ctrl') # ctrl 키를 뗍니다. 

이렇게 마우스 제어 함수와 키보드 제어함수를 이용하면 다양한 프로그램 제어가 가능합니다.

실제 코드 작성

마우스 좌표를 계속 조회하면서 코드를 작성해야한다면 터미널을 분할하여 코딩하는 것이 편리합니다.

+ 기능을 통해 터미널 창을 분할하고 PowerShell 창을 띄워주세요.

분할된 터미널창에 python 명령어를 입력하여 파이썬을 실행합니다. 제가 파일 이름을 pyautogui.py로 생성하여 코드를 실행했더니 에러가 발생했습니다. 라이브러리랑 이름을 동일하게 생성하면 안됩니다.

분할된 터미널 화면에서 두개의 코드를 입력합니다.

import pyautogui

# after Enter

pyautogui.position()

2개의 터미널을 이용하면 마우스 좌표를 편리하게 확인할 수 있습니다.

왼쪽 윈도우 창의 ‘Switch to English’ 창의 좌표가 필요하다면 마우스를 올리고 터미널에서 pyautogui.position() 함수를 실행하면 마우스 좌표가 출력되는 것을 확인할 수 있습니다.

copyright@timeseller

Leave a Comment

// Open internal links in same tab