在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):boppreh/keyboard开源软件地址(OpenSource Url):https://github.com/boppreh/keyboard开源编程语言(OpenSource Language):Python 99.7%开源软件介绍(OpenSource Introduction):keyboardTake full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more. Features
UsageInstall the PyPI package:
or clone the repository (no installation required, source files are sufficient):
or download and extract the zip into your project folder. Then check the API docs below to see what features are available. ExampleUse as library: import keyboard
keyboard.press_and_release('shift+s, space')
keyboard.write('The quick brown fox jumps over the lazy dog.')
keyboard.add_hotkey('ctrl+shift+a', print, args=('triggered', 'hotkey'))
# Press PAGE UP then PAGE DOWN to type "foobar".
keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))
# Blocks until you press esc.
keyboard.wait('esc')
# Record events until 'esc' is pressed.
recorded = keyboard.record(until='esc')
# Then replay back at three times the speed.
keyboard.play(recorded, speed_factor=3)
# Type @@ then press space to replace with abbreviation.
keyboard.add_abbreviation('@@', '[email protected]')
# Block forever, like `while True`.
keyboard.wait() Use as standalone module: # Save JSON events to a file until interrupted:
python -m keyboard > events.txt
cat events.txt
# {"event_type": "down", "scan_code": 25, "name": "p", "time": 1622447562.2994788, "is_keypad": false}
# {"event_type": "up", "scan_code": 25, "name": "p", "time": 1622447562.431007, "is_keypad": false}
# ...
# Replay events
python -m keyboard < events.txt Known limitations:
Common patterns and mistakesPreventing the program from closingimport keyboard
keyboard.add_hotkey('space', lambda: print('space was pressed!'))
# If the program finishes, the hotkey is not in effect anymore.
# Don't do this! This will use 100% of your CPU.
#while True: pass
# Use this instead
keyboard.wait()
# or this
import time
while True:
time.sleep(1000000) Waiting for a key press one timeimport keyboard
# Don't do this! This will use 100% of your CPU until you press the key.
#
#while not keyboard.is_pressed('space'):
# continue
#print('space was pressed, continuing...')
# Do this instead
keyboard.wait('space')
print('space was pressed, continuing...') Repeatedly waiting for a key pressimport keyboard
# Don't do this!
#
#while True:
# if keyboard.is_pressed('space'):
# print('space was pressed!')
#
# This will use 100% of your CPU and print the message many times.
# Do this instead
while True:
keyboard.wait('space')
print('space was pressed! Waiting on it again...')
# or this
keyboard.add_hotkey('space', lambda: print('space was pressed!'))
keyboard.wait() Invoking code when an event happensimport keyboard
# Don't do this! This will call `print('space')` immediately then fail when the key is actually pressed.
#keyboard.add_hotkey('space', print('space was pressed'))
# Do this instead
keyboard.add_hotkey('space', lambda: print('space was pressed'))
# or this
def on_space():
print('space was pressed')
keyboard.add_hotkey('space', on_space)
# or this
while True:
# Wait for the next event.
event = keyboard.read_event()
if event.event_type == keyboard.KEY_DOWN and event.name == 'space':
print('space was pressed') 'Press any key to continue'# Don't do this! The `keyboard` module is meant for global events, even when your program is not in focus.
#import keyboard
#print('Press any key to continue...')
#keyboard.get_event()
# Do this instead
input('Press enter to continue...')
# Or one of the suggestions from here
# https://stackoverflow.com/questions/983354/how-to-make-a-script-wait-for-a-pressed-key APITable of Contents
keyboard.KEY_DOWN= 'down' keyboard.KEY_UP= 'up' class keyboard.KeyboardEventKeyboardEvent.deviceKeyboardEvent.event_typeKeyboardEvent.is_keypadKeyboardEvent.modifiersKeyboardEvent.nameKeyboardEvent.scan_codeKeyboardEvent.timeKeyboardEvent.to_json(self, ensure_ascii=False)keyboard.all_modifiers= {'alt', 'alt gr', 'ctrl', 'left alt', 'left ctrl', 'left shift', 'left windows', 'right alt', 'right ctrl', 'right shift', 'right windows', 'shift', 'windows'} keyboard.sided_modifiers= {'alt', 'ctrl', 'shift', 'windows'} keyboard.version= '0.13.5' keyboard.is_modifier(key)Returns True if keyboard.key_to_scan_codes(key, error_if_missing=True)Returns a list of scan codes associated with this key (name or scan code). keyboard.parse_hotkey(hotkey)Parses a user-provided hotkey into nested tuples representing the parsed structure, with the bottom values being lists of scan codes. Also accepts raw scan codes, which are then wrapped in the required number of nestings. Example: parse_hotkey("alt+shift+a, alt+b, c")
# Keys: ^~^ ^~~~^ ^ ^~^ ^ ^
# Steps: ^~~~~~~~~~^ ^~~~^ ^
# ((alt_codes, shift_codes, a_codes), (alt_codes, b_codes), (c_codes,)) keyboard.send(hotkey, do_press=True, do_release=True)Sends OS events that perform the given hotkey hotkey.
send(57)
send('ctrl+alt+del')
send('alt+F4, enter')
send('shift+s') Note: keys are released in the opposite order they were pressed. keyboard.press(hotkey)Presses and holds down a hotkey (see keyboard.release(hotkey)Releases a hotkey (see keyboard.is_pressed(hotkey)Returns True if the key is pressed. is_pressed(57) #-> True
is_pressed('space') #-> True
is_pressed('ctrl+space') #-> True keyboard.call_later(fn, args=(), delay=0.001)Calls the provided function in a new thread after waiting some time. Useful for giving the system some time to process an event, without blocking the current execution flow. keyboard.hook(callback, suppress=False, on_remove=<lambda>)Installs a global listener on all available keyboards, invoking The event passed to the callback is of type
Returns the given callback for easier development. keyboard.on_press(callback, suppress=False)Invokes keyboard.on_release(callback, suppress=False)Invokes keyboard.hook_key(key, callback, suppress=False)Hooks key up and key down events for a single key. Returns the event handler
created. To remove a hooked key use Note: this function shares state with hotkeys, so keyboard.on_press_key(key, callback, suppress=False)Invokes keyboard.on_release_key(key, callback, suppress=False)Invokes keyboard.unhook(remove)Removes a previously added hook, either by callback or by the return value
of keyboard.unhook_all()Removes all keyboard hooks in use, including hotkeys, abbreviations, word
listeners, keyboard.block_key(key)Suppresses all key events of the given key, regardless of modifiers. keyboard.remap_key(src, dst)Whenever the key
全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论