키보드 입력 감지(후킹) 및 마우스 포인터 이동 예제
글, 오상문 sualchi@daum.net
F1~F10 기능 키가 눌리면 그 키를 글자로 출력합니다.
w, s, a, d 키가 눌리면 마우스 포인터를 상하좌우로 이동합니다.
다른 윈도우나 다른 프로그램에서 눌린 경우에도 동작합니다.
예제 코드는 다음과 같습니다.
import keyboard # 키보드 입력 감지
import pyautogui as auto # 마우스 포인터 이동
import time # 시간 지연
while True: # 무한반복
try:
if keyboard.is_pressed('f1'): # F1 키가 눌렸으면
print("F1") # 글자 출력하고
time.sleep(0.1) # 0.1초 기다림
elif keyboard.is_pressed('f2'):
print("F2")
time.sleep(0.1)
elif keyboard.is_pressed('f3'):
print("F3")
time.sleep(0.1)
elif keyboard.is_pressed('f4'):
print("F4")
time.sleep(0.1)
elif keyboard.is_pressed('f5'):
print("F5")
time.sleep(0.1)
elif keyboard.is_pressed('f6'):
print("F6")
time.sleep(0.1)
elif keyboard.is_pressed('f7'):
print("F7")
time.sleep(0.1)
elif keyboard.is_pressed('f8'):
print("F8")
time.sleep(0.1)
elif keyboard.is_pressed('f9'):
print("F9")
time.sleep(0.1)
elif keyboard.is_pressed('f10'):
print("F10")
time.sleep(0.1)
elif keyboard.is_pressed('w'): # 'w' 키가 눌렸으면
print("w")
auto.move(0, -10) # 마우스 포인터를 위로 이동
time.sleep(0.1)
elif keyboard.is_pressed('a'):
print("a")
auto.move(-10, 0) # 마우스 포인터를 왼쪽으로 이동
time.sleep(0.1)
elif keyboard.is_pressed('s'):
print("s")
auto.move(0, 10) # 마우스 포인터를 아래로 이동
time.sleep(0.1)
elif keyboard.is_pressed('d'):
print("d")
auto.move(10, 0) # 마우스 포인터를 오른쪽으로 이동
time.sleep(0.1)
else:
pass
except:
pass
공식 레퍼런스에서는 앞에서 처리한 구조는 좋지 않다고 합니다(CPU 자원 소모). 다음 두 방법 중에서 하나를 사용하라고 합니다.
while True:
keyboard.wait('space')
print('space was pressed! Waiting on it again...')
또는
keyboard.add_hotkey('space', lambda: print('space was pressed!'))
keyboard.wait()
공식 레퍼런스 참조: https://github.com/boppreh/keyboard#api
<이상>
'Python 활용' 카테고리의 다른 글
파이썬, Pandas의 Series, DataFrame 자료 예제 (0) | 2021.04.24 |
---|---|
파이썬, PyAudio 설치 에러 (0) | 2021.02.22 |
파이썬 3에서 Crypto 모듈 pycryptodome 설치하기 (0) | 2021.02.15 |
파이썬, Numpy 배열 합치기 (0) | 2021.02.15 |
파이썬, playsound 모듈을 이용한 사운드 출력 (for Windows) (0) | 2021.02.15 |