프로그래밍언어/Python

단축키사용하기

부산딸랑이 2021. 4. 16. 21:46

https://heodolf.tistory.com/61

from pynput.keyboard import Listener, Key, KeyCode
import win32api,pyautogui,pyperclip
 
store = set()
 
HOT_KEYS = {
    'print_hello': set([ Key.alt_l, KeyCode(char='1')] )
    , 'open_notepad': set([ Key.alt_l, KeyCode(char='2')] )
}
 
def print_hello():
    pyperclip.copy("안녕하세요")
    pyautogui.hotkey('ctrl','v')


def open_notepad():
    print('open_notepad')
    try:
        win32api.WinExec('notepad.exe')
    except Exception as err:
        print( err )
 
def handleKeyPress( key, **kwargs ):
    store.add( key )
 
def handleKeyRelease( key ):
    for action, trigger in HOT_KEYS.items():
        CHECK = all([ True if triggerKey in store else False for triggerKey in trigger ])
 
        if CHECK:
            try:
                action = eval( action )
                if callable( action ):
                    action()
            except NameError as err:
                print( err )
               
    # 종료
    if key == Key.esc:
        return False
    elif key in store:
        store.remove( key )
   
with Listener(on_press=handleKeyPress, on_release=handleKeyRelease) as listener:
    listener.join()