[Python] 파이썬 자동화 기초 : pyautogui 오토마우스, 오토키보드 자동화 명령어 모음
엑셀VBA에서도 오토마우스, 오토키보드가 가능했다.
파이썬에서는 훨씬 더 쉽고 간단하게 마우스 이동, 클릭, 키입력 등을 자동화할 수 있다.
pyautogui 설치
단어 gui 는 알다시피 Graphic User Interface 의 약자이다.
대기하기
n초 대기하기
카운트다운 출력하며 대기하기
모든 명령어에 대기 적용하기
마우스 자동화 (오토마우스)
절대 좌표로 마우스 이동하기
상대좌표로 마우스 이동 (현재 커서 위치 기준으로 이동)
마우스 위치 출력하기
마우스 클릭하기
마우스 더블클릭
마우스 우클릭
마우스 드래그
마우스 스크롤
현재 마우스 정보 표시하기 (MouseInfo 프로그램 실행)
<MouseInfo 프로그램 사용 방법>
마우스를 원하는 특정 위치로 옮겨놓고, F1키(Copy All)를 누르면, xy좌표나 픽셀 RGB 값 등이 클립보드에 복사된다. 이어서 Ctrl + V키로 메모장 같은 곳에 붙여넣기하면 F1키를 누른 시점의 마우스 정보가 나온다.
마우스 제어 중단하는 방법
pyautogui 로 마우스 제어 시, 사용자가 화면 네 귀퉁이에 마우스를 갖다놓으면 프로그램이 중단된다.
마우스 제어 중단하지 않도록 처리
만약 pyautogui.FAILSAFE 값을 False 로 대입하면, 화면 네 귀퉁이에 마우스를 갖다놓아도 제어를 계속한다.
키보드 자동화 (오토키보드)
숫자 또는 영어 문장 입력하기 (한글은 불가)
차례대로 키입력
문자열 |
의미 |
‘a’, ‘b’, ‘c’, ‘A’, ‘B’, ‘C’, ‘1’, ‘2’, ‘3’, ‘!’, ‘@’, ‘#’ 등등 |
해당하는 단일문자 |
‘enter’ (또는 ‘return’ 또는 ‘\n’) |
ENTER 키 |
‘esc’ |
ESC 키 |
‘shiftleft’, ‘shiftright’ |
왼쪽과 오른쪽 SHIFT 키 |
‘altleft’, ‘altright’ |
왼쪽과 오른쪽 ALT 키 |
‘ctrlleft’, ‘ctrlright’ |
왼쪽과 오른쪽 CTRL 키 |
‘tab’ (또는 ‘\t’) |
TAB 키 |
‘backspace’, ‘delete’ |
BACKSPACE 키, DELETE 키 |
‘pageup’, ‘pagedown’ |
PAGE UP 키, PAGE DOWN 키 |
‘home’, ‘end’ |
HOME 키, END 키 |
‘up’, ‘down’, ‘left’, ‘right’ |
상, 하, 좌, 우 화살표 키 |
‘f1’, ‘f2’, ‘f3’ 등등 |
F1 ~ F12 키 |
‘volumemute’, ‘volumedown’, ‘volumeup’ |
음소거, 볼륨 감소 키, 볼륨 증가 키 (일부 키보드에는 이러한 키가 없지만 운영 체제에서는 시뮬레이션된 키입력을 이해할 수 있음) |
‘pause’ |
PAUSE 키 |
‘capslock’, ‘numlock’, ‘scrolllock’ |
CAPS LOCK 키, NUM LOCK 키, SCROLL LOCK 키 |
‘insert’ |
INS 또는 INSERT 키 |
‘printscreen’ |
PRTSC 또는 PRINT SCREEN 키 |
‘winleft’, ‘winright’ |
왼쪽과 오른쪽 윈도우(WIN) 키 (Windows OS 전용) |
‘command’ |
Command 키 (mac OS 전용) |
‘option’ |
OPTION 키 (mac OS 전용) |
조합키 입력하기 (ex : shift + 4, ctrl + a)
한글 문자열 입력하기 (복사 붙여넣기 이용)
키보드 제어 중단하는 방법
스크린 정보 가져오기 (화면 정보 가져오기)
화면 사이즈 가져오기
현재화면 스크린샷 찍기
화면 특정좌표의 픽셀값 가져오기
화면 특정좌표의 픽셀값 색상 일치하는지 검사
이미지 찾기
화면에 이미지 존재하는지 확인 (locateOnScreen)
이미지 찾아서 클릭하기
이미지 찾아서 마우스 이동하기
복수의 이미지(n개 이미지) 가져오기 (locateAllOnScreen)
이미지 찾기 속도 개선하기
이미지가 나타날 때까지 기다려야 하는 경우 : 찾을 때까지 무한정 반복하는 코드
이미지가 나타날 때까지 기다려야 하는 경우 : 1초 간격으로 100번 찾아보는 코드
윈도우 정보 가져오기 (창 정보 가져오기)
현재 활성화된 윈도우(창) 객체 가져오기 (getActiveWindow)
모든 윈도우(창) 객체 가져오기 (getAllWindows)
특정 문자열을 제목에 포함하는 윈도우 객체 가져오기 (getWindowsWithTitle)
특정 윈도우(창) 활성화 시키기
기타 윈도우(창) 정보
메시지 박스
메시지 박스 표시 (alert)
확인 박스 표시 (confirm)
문자열 입력받기 (prompt)
참고사이트 1 : pyautogui 라이브러리 공식문서 https://pyautogui.readthedocs.io/
참고사이트 2 : 파이썬 프로그래밍으로 지루한 작업 자동화하기 https://automatetheboringstuff.com/2e/chapter20/
참고사이트 3 : 나도코딩 https://www.youtube.com/watch?v=exgO1LFl9x8&t=4285s