pyautogui라는 라이브러리로 마우스와 키보드를 자동화하는 간단한 매크로를 만들 수 있다.
보통 '매크로'하면 python의 Selenium 라이브러리를 떠올린다. Selenium 만큼 효과적인 웹 매크로는 아니다. pyautogui는 마우스를 모니터의 좌표 기준으로 움직이기 때문에, 다른 컴퓨터에서 똑같이 작동하지 않는다는 한계가 있다. 그러나 셀레니움처럼 HTML을 확인하는 일 없이 간단하게 제작할 수 있다. 여건이 된다면 수강신청 같은 걸 할 때 요긴하게 쓸 수 있다.
설치
우선 pyautogui를 설치해야 한다. python 터미널에 다음과 같이 입력해보자.
pip install pyautogui
또한 time 라이브러리의 sleep 함수도 중요하게 쓰인다. time 라이브러리는 python 내장 라이브러리이므로 추가적인 설치가 필요하지 않다.
명령어
함수 | 뜻 |
position() | 현재 마우스 위치 (x, y) 반환 |
move(x,y) | (x, y) 만큼 이동 (상대적) |
moveTo(x,y) | (x, y)로 이동 (절대적) |
click() | 마우스 클릭 |
click(x,y) | (x, y) 만큼 moveTo 후 마우스 클릭 |
scroll(c) | c만큼 스크롤 |
typewrite("ABC") | "ABC" 입력 |
sleep(t) | 0.5초만큼 일시정지 |
가장 기본적이고 중요한 명령어는 위와 같다. 몇 가지 부가 설명을 하자면, 컴퓨터 기준으로 좌표는
모양이다.
또 scroll(c)에서 c가 음수일 때 아래로 내려가게 되고, typewrite에서 한글은 입력할 수 없다는 점에 유의해야 한다.
사용
이제 직접 만들어보자. 위에 제시한 예시처럼 몇 개 안되는 명령어만으로도 괜찮은 자동화 프로그램을 만들 수 있다. 더 다양한 함수는 https://pyautogui.readthedocs.io/en/latest/# 에서 확인할 수 있다.
가장 주의해야 할 점은, 빠르게 하고 싶다고 명령어를 바로바로 실행하려 한다면 반드시 오류가 발생하게 된다는 것이다. 그 이유는 명령을 실행하는 데 걸리는 시간 때문인데, 예를 들어 스크롤를 하는 중인데 스크롤이 완료되지 않은 상태에서 클릭을 실행시켜봤자 잘못 눌리게 된다. 때문에 sleep() 함수로 적당한 시간을 조절하면서 안전하게 써야 하는 것이다.
'공부 > 정보과학' 카테고리의 다른 글
[CodeUp] 3516: 사탕 줍기 3 C++ (0) | 2024.01.19 |
---|---|
선택 알고리즘 C++ 구현 (0) | 2024.01.16 |
정렬 알고리즘 C++ 구현 (0) | 2024.01.16 |