반응형

1. Keyboard package

1.1 사용한 패키지

Windows Keyboard를 제어할 목적으로 Python의 Keyboard 패키지를 사용하였다.

https://github.com/boppreh/keyboard

 

boppreh/keyboard

Hook and simulate global keyboard events on Windows and Linux. - boppreh/keyboard

github.com

 

1.2 사용목적

한 손으로 사용하기 힘든 단축키를 한손으로만 사용하기 위해 Keyboard Pacakge에서의 Hotkey를 사용하였다.

예를 들어, 윈도우 데스크톱 이동 명령어인 ctrl+window key+left or right 는 한손으로는 무리가 가기 때문에 이를 위해 아래와 같이 작성하여, 한손으로 사용하고자 하였다.

import keyboard

def main():
    
    keyboard.add_hotkey('cmd+z', lambda: keyboard.press_and_release('ctrl+cmd+left'))

    keyboard.add_hotkey('cmd+c', lambda: keyboard.press_and_release('ctrl+cmd+right'))
 
    keyboard.wait()  

if __name__== '__main__':
    main()

 

2. 문제

2.1 Keyboard Package 한/영키 문제

사용 중에 가끔 먹통이 되는 이유가 있었는 데, 원인을 파악해 보니 한/영키 문제 였다.

 

2.2 해결

한/영키를 누를 경우 Keyboard에 hangeul 이라는 것이 늘 따라 붙게 된다. 따라서 앞에 hangeul이라는 것을 붙이면 해결된다. 아래는 해결한 코드이다.

import keyboard

def main():
    
    keyboard.add_hotkey('cmd+z', lambda: keyboard.press_and_release('ctrl+cmd+left'))
    keyboard.add_hotkey('hangeul+cmd+z', lambda: keyboard.press_and_release('ctrl+cmd+left')) # hangeul 붙임

    keyboard.add_hotkey('cmd+c', lambda: keyboard.press_and_release('ctrl+cmd+right'))
    keyboard.add_hotkey('hangeul+cmd+c', lambda: keyboard.press_and_release('ctrl+cmd+right')) # hangeul 붙임

    keyboard.wait()  

if __name__== '__main__':
    main()

 

이렇게 한/영키를 통해 먹통이 되는 Keyboad Pacakge를 앞에 hangeul 이라는 단어를 붙여 해결 할 수 있다.

반응형

+ Recent posts