[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 모듈의 공식 문서를 참고하시기 바랍니다.

참고 자료