Develop/Python
Python Keyboard Package 한/영키
팡연
2020. 7. 24. 12:10
반응형
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 이라는 단어를 붙여 해결 할 수 있다.
반응형