Python 키보드 이벤트를 후킹하고 시뮬레이팅하는 keyboard 라이브러리 알아보기
오늘은 Python으로 사용자의 키보드의 입력 이벤트를 후킹하고, 시뮬레이팅할 수 있는 라이브러리인 keyboard를 적용해보려 합니다.
keyboard 설치
우선 virtualenv로 파이썬 환경을 분리해줍니다.
pip3 install virtualenv
virtualenv -mvenv env
env라는 이름의 가상 환경을 생성합니다.
source env/bin/activate
가상환경을 폴더에서 활성화합니다.
pip3 install --upgrade pip
pip의 업그레이드가 존재하는지 확인하고 진행합니다.
pip install keyboard
pip로 keyboard를 설치합니다.
write
import keyboard
import fileinput
keyboard와 fileinput을 가져옵니다.
for line in fileinput.input():
keyboard.write(line)
운영체제에 가상 키보드 이벤트를 보내어 키보드 입력을 진행할 수 있습니다.
macro
import keyboard
import time
keyboard와 time을 가져옵니다.
keyboard.start_recording()
time.sleep(10)
events = keyboard.stop_recording()
keyboard.replay(events)
잠시 멈추면서 계속 키보드 입력을 기록하고, 그동안 기록한 것을 리플레이할 수 있습니다.
simulate
import keyboard
import time
keyboard와 time을 가져옵니다.
for i in range(10):
keyboard.press('a')
time.sleep(0.1)
keyboard.release('a')
키보드에 특정 키를 입력하는 이벤트를 시뮬레이팅시킬 수 있습니다.
press key
import keyboard
keyboard를 가져옵니다.
def print_pressed_keys(e):
for code in keyboard._pressed_events:
line = ', '.join(str(code))
print(line,e.name)
keyboard.hook(print_pressed_keys)
keyboard.wait('esc')
키보드를 누를 때마다 특정 함수를 호출하는 hook 함수를 사용할 수 있습니다.
마지막으로 esc를 누를 때까지 기다립니다.
hot key
import keyboard
keyboard를 가져옵니다.
shortcut = keyboard.read_hotkey()
def on_triggered():
print("Triggered!")
keyboard.add_hotkey(shortcut, on_triggered)
keyboard.wait('esc')
핫키를 설정하고, add_hotkey 함수로 핫키가 입력될 때마다 특정 함수를 수행할 수 있습니다.
마지막으로 esc를 누를 때까지 기다립니다.
Written on May 30, 2019