Pythonはkeyboardを使用してキーボードイベントを傍受する

12092 ワード

文書ディレクトリ
  • 1.
  • を押します.
  • 2. インストール
  • 3. キー文字
  • 4. 一般的な方法
  • 4.1. [wait()](https://github.com/boppreh/keyboard#keyboard.wait)
  • 4.2. [add_hotkey()](https://github.com/boppreh/keyboard#keyboard.add_hotkey)
  • 4.3. [record()](https://github.com/boppreh/keyboard#keyboard.record)
  • 4.4. [hook()](https://github.com/boppreh/keyboard#keyboard.hook)
  • 4.5. [on_press()](https://github.com/boppreh/keyboard#keyboard.on_press)
  • 4.6. [KeyboardEvent()](https://github.com/boppreh/keyboard#keyboard.KeyboardEvent)
  • 4.7. [すべてAPI](https://github.com/boppreh/keyboard#api)

  • 1.
    マウスイベントのリスニングは、pynputを使用してPythonがマウスイベントをリスニングすることを参照してください.
    2.インストール
    ホームページ
    pip install keyboard
    

    3.キー文字
    #  
    '1'
    'a'
    ...
    #  
    'ctrl'
    'alt'
    'shift'
    'enter'
    'esc'
    'f1'
    ...
    #   
    'up'
    'down'
    'left'
    'right'
    #    
    'ctrl'+'alt'+'a'
    ...
    

    4.一般的な方法
    4.1. wait()
    リスニングキーは、キーが設定されていない場合、この文の前のキーをリスニングします.キーが設定されている場合、キーを押すとリスニングが停止し、次のような文が実行されます.
    import keyboard
    
    print(0)
    keyboard.wait('a')
    #   a            ,    
    print(1)
    keyboard.wait('b')
    print(2)
    keyboard.wait('c')
    print(3)
    keyboard.wait()
    
    #   :
    # 0
    # 1
    # 2
    # 3
    
    #    
    #       abc(          )    0123,            ,         
    

    4.2. add_hotkey()
    ホットキーを設定し、一般的にwait()と組み合わせて使用します.waitリスニングでは、ホットキーを押すと対応する関数が実行されます.例:
    import keyboard  #    
    
    def test_a():
        print('aaa')
    
    def test(x):
        print(x)
    
    if __name__ == '__main__':
        keyboard.add_hotkey('f1', test_a)
        # f1  aaa
        keyboard.add_hotkey('ctrl+alt', test, args=('b',))
        # ctrl+alt  b
        keyboard.wait()
        #wait        ,          
    

    4.3. record()
    キーボードイベントを記録し、untilパラメータを追加すると、キーを押したときにリスニングを終了するように設定できます.waitメソッドに似ています.例:
    import keyboard
    
    keyboard.add_hotkey('ctrl', print, args=('aaa',))
    keyboard.add_hotkey('alt', print, args=('bbb',))
    
    recorded = keyboard.record(until='esc')
    #   esc       ,         
    print(recorded)
    
    #    :
    # aaa
    # aaa
    # bbb
    # [KeyboardEvent(ctrl down), KeyboardEvent(ctrl up), KeyboardEvent(ctrl down), 
    # KeyboardEvent(ctrl up), KeyboardEvent(alt down), KeyboardEvent(alt up),
    # KeyboardEvent(esc down)]
    

    4.4. hook()
    すべてのキーイベントをバインドし、キーを押したり放したりするとトリガーされるコールバック関数の例を示します.
    import keyboard
    
    
    def callback(x):
        print(x)
        print()
    
    
    keyboard.hook(callback)
    #        ,    callback,         ,      
    keyboard.wait()
    

    4.5. on_press()
    任意のキーを押すとコールバック関数がトリガーされます
    import keyboard
    
    
    def callback(x):
        print(x)
        print()
    
    
    keyboard.on_press(callback)
    #        (    ),    callback,         ,      
    keyboard.wait()
    
    

    4.6. KeyboardEvent()
    3つの共通パラメータ:event_type、scan_code、nameは、それぞれキータイプ(down/up)、キー番号(各キーに対応する)、キー名を表します.例:
    import keyboard
    
    def abc(x):
        a = keyboard.KeyboardEvent('down', 28, 'enter')
        #    a   enter ,                    ,
        #            hook       ,  x.scan_code  
        if x.event_type == 'down' and x.name == a.name:
            print("    enter ")
        #       enter ,       
    
    keyboard.hook(abc)
    # keyboard.hook_key('enter', bcd)
    # recorded = keyboard.record(until='esc')
    keyboard.wait()
    
    #   :
    #     enter 
    #     enter 
    

    4.7. すべてのAPI