[python] 파이썬에서 키 입력을 다른 프로그램 제어에 사용하기
파이썬을 사용하여 다른 프로그램을 제어하고 싶을 때, 키 입력을 이용하는 방법이 있습니다. 이를 통해 사용자 입력에 따라 프로그램의 동작을 제어할 수 있습니다. 이번 포스트에서는 이러한 방법을 소개하겠습니다.
keyboard
모듈 사용하기
파이썬에서는 keyboard
모듈을 사용하여 키 입력을 다룰 수 있습니다. 먼저 해당 모듈을 설치해야 합니다. 아래 명령을 사용하여 설치할 수 있습니다.
pip install keyboard
설치가 완료되었다면, 다음과 같이 keyboard
모듈을 사용할 수 있습니다.
import keyboard
# 특정 키 입력 감지
def on_key(event):
if event.name == 'a':
print('A 키가 눌렸습니다!')
# 키 입력 핸들러 등록
keyboard.on_press(on_key)
# 계속해서 키 입력 대기
keyboard.wait()
위의 코드에서는 keyboard.on_press
함수를 사용하여 on_key
함수를 특정 키 입력에 대한 이벤트 핸들러로 등록하였습니다. keyboard.wait
함수는 계속해서 키 입력을 대기하며, 키 입력이 발생하면 등록한 이벤트 핸들러가 호출됩니다.
다른 프로그램 제어하기
이제 키 입력을 이용하여 다른 프로그램을 제어해보겠습니다. 예를 들어, 키 입력에 따라 메모장의 내용을 조작하는 프로그램을 작성해보겠습니다.
import keyboard
import win32gui
# 메모장 창 핸들 가져오기
memo_hwnd = win32gui.FindWindow(None, '제어할 메모장 제목')
# 키 입력에 따라 메모장 내용 조작하기
def on_key(event):
if event.name == 'left':
# 왼쪽 화살표 키가 눌렸을 때
win32gui.SendMessage(memo_hwnd, win32con.WM_KEYDOWN, win32con.VK_LEFT, 0)
elif event.name == 'right':
# 오른쪽 화살표 키가 눌렸을 때
win32gui.SendMessage(memo_hwnd, win32con.WM_KEYDOWN, win32con.VK_RIGHT, 0)
# 키 입력 핸들러 등록
keyboard.on_press(on_key)
# 계속해서 키 입력 대기
keyboard.wait()
위의 코드에서는 win32gui
모듈을 사용하여 메모장 창의 핸들을 가져오고, win32gui.SendMessage
함수를 사용하여 키 입력을 메모장으로 전달합니다. on_key
함수에서는 왼쪽 화살표 키가 눌렸을 때와 오른쪽 화살표 키가 눌렸을 때의 동작을 정의한 것입니다.
마치며
이처럼 파이썬을 사용하여 키 입력을 다루고 다른 프로그램을 제어할 수 있습니다. 이를 응용하여 자동화 프로그램 등을 구현할 수 있습니다. 추가적인 기능이나 자세한 사용법은 keyboard
모듈의 공식 문서를 참고하시기 바랍니다.
참고 자료
keyboard
모듈 공식 문서: https://keyboard.readthedocs.io/win32gui
모듈 공식 문서: https://docs.microsoft.com/en-us/windows/win32/api/winuser/