자동 키보드 프로그래밍은 마우스에 비해서는 단순하다. 키보드 입력값은 그저 1차원적인 입력의 배열이다.

 

배열의 측면에서 보면 키보드는 1차원 문자열의 연속이고 마우스는 2차원 평면좌표를 1초에 수백번 입력이 된다. 마우스에서는 그보다 더 많은 신호가 발생한다. 파이썬에서 보통 처리하는 인터럽트의 숫자가 수백번정도 나온다, 그래픽카드와 모니터 주사율이 못따라간다.

 

그래서 키보드만 조작하는 것은 아무래도 한계가 있고, 마우스와 같이 써야 키보드의 능력치를 최대화 할 수 있다.

 

마우스 조작방법에 관한 문서는 아래의 포스팅을 참고할 수 있다.

 

https://digiconfactory.tistory.com/258

 

파이썬 | 마우스 자동 조작 하기 | GUI 조작 프로그래밍 | pyautogui 모듈 | 매크로

자동 조작이라고 했지만 실제로는 마우스를 프로그래밍한다는 말이 더 어울릴 것 이다. 마우스를 사용하지 못하는 사람은 PC를 아예 안쓰는 사람일 것이다. 어찌보면 현재의 컴퓨팅 환경은 스티

digiconfactory.tistory.com

 

예제> 예제는 자동으로 몇가지 메시와 동작을 한다.

 

import pyautogui
import time
import subprocess


subprocess.Popen(['notepad'])
time.sleep(1)
pyautogui.typewrite('Hello my friend!\n',0.1)
pyautogui.typewrite('This is an automated writing program.\n',0.1)
pyautogui.typewrite('I can do a lot of things, for instance\n',0.1)
pyautogui.typewrite('ctrl + a',0.1)
pyautogui.keyDown('ctrl');
pyautogui.press('a');
time.sleep(1)
pyautogui.keyUp('ctrl');
pyautogui.keyDown('ctrl');
pyautogui.press('x');
time.sleep(1)
pyautogui.keyUp('ctrl');
pyautogui.keyDown('ctrl');
pyautogui.press('v');
time.sleep(1)
pyautogui.keyUp('ctrl');
pyautogui.typewrite('\n\n That\'s it. Things like that.',0.1)

텍스트 매개변수는 화면에 출력하기 위한 메시지라는 걸 알 수 있다. 그 다음에 나오는 매개변수 0.1 은 마치 키보드를 입력하는 것 처럼 지연시키는 동작이다. 한꺼번에 처리할 수 있음에도 불구하고 이렇게 하는 이유는... 사람이 치는 것 처럼 보이기 때문이다. 타이핑하는 모습을 보고 있으면 타자를 읽는 것 같은 기분이 든다.

 

그래서 메서드 이름도 typewriter 이다.

 

KeyDown 메서드를 쓰면 Ctrl + a, Ctrl + x, Ctrl + v 같은 복합키도 사용할 수 있다.

 

빠른 습득을 위해서는 온라인 문서를 참조한다.

https://pyautogui.readthedocs.io/en/latest/keyboard.html#

 

Keyboard Control Functions — PyAutoGUI documentation

The write() Function The primary keyboard function is write(). This function will type the characters in the string that is passed. To add a delay interval in between pressing each character key, pass an int or float for the interval keyword argument. For

pyautogui.readthedocs.io

마우스 자동화 프로그램으로 여러가지를 할 수 있다는 것을 알았다. 타인이 개발한 프로그램이나 앱은 유료나 광고를 봐야하지만 본인이 스스로 컨트롤 하면 무료이고 원하는데로 커스터마이즈할 수 있다.

 

약간의 고민의 시간과 타이핑시간은 투자는 필요하다. 그러니까 한번 두번할 작업은 자동화할 필요가 없다. 여러번 하는 작업에 사용한다면 여러모로 좋을 것이다. while 문을 이용한 자동 클릭기능 같은 경우는 실제 손목건강에도 도움이 되니까 추천할만한 프로젝트이다.

공유하기

facebook twitter kakaoTalk kakaostory naver band