keyboard键盘模块(如何用Python控制你的键盘())

Python如何使用keyboard键盘模块?本文带你了解如何在 Python 中使用键盘模块来完全控制你的键盘,例如挂钩全局事件、注册热键、模拟按键按下和释放等等。
如何用Python控制你的键盘?在本教程中,你将学习如何使用键盘模块在 Python 中控制你的计算机键盘,这当然对许多任务很有用,例如使我们能够自动执行各种常规桌面任务、构建强化学习代理等等。
相关:  如何在 Python 中发送电子邮件。
【keyboard键盘模块(如何用Python控制你的键盘())】Python控制键盘示例解析 - 我们将使用keyboard模块,让我们安装它:

pip3 install keyboard

好的,打开一个 Python 交互式 shell 或一个 Jupyter 笔记本/实验室,然后继续。
首先,让我们导入模块:
import keyboard

添加热键和缩写Python如何控制键盘?该模块为我们提供了一种功能add_abbreviation(),使我们能够注册一个热键,将一个输入的文本替换为另一个。例如,让我们将文本替换"@email"为电子邮件地址"test@example.com"
# replaces every "@email" followed by a space with an actual email keyboard.add_abbreviation("@email", "test@example.com")

Python如何使用keyboard键盘模块?现在执行这行代码,然后打开任何文本编辑器并在“@email”后面加上一个空格,你会看到神奇的!
其次,你还可以在每次按下热键时调用回调:
keyboard.add_hotkey("ctrl+alt+p", lambda: print("CTRL+ALT+P Pressed!"))

"ctrl+alt+p"指的是一次按下按钮CTRL、ALT和P字符,所以每当这些按钮被一次按下时,回调将被调用,在这种情况下,它只会打印一条简单的消息,但你可以做任何你想做的事情,比如桌面快捷方式。
检查按钮是否被按下你还可以检查按钮是否被实际按下:
# check if a ctrl is pressed print(keyboard.is_pressed('ctrl'))

按下和释放按钮如何用Python控制你的键盘?接下来,你还可以使用以下send()功能模拟按键操作:
# press space keyboard.send("space")

Python控制键盘示例:这将按下并释放空格键。事实上,有一个等效的函数press_and_release()可以做同样的事情。
你还可以传递多键:
# multi-key, windows+d as example shows the desktop in Windows machines keyboard.send("windows+d")

+操作装置上我们按在同一时间两个按钮,你还可以使用多步热键:
# send ALT+F4 in the same time, and then send space, # (be carful, this will close any current open window) keyboard.send("alt+F4, space")

但是,如果你想按下某个特定键但又不想松开它,该怎么办?那么,press()release()功能开始发挥作用:
# press CTRL button keyboard.press("ctrl") # release the CTRL button keyboard.release("ctrl")

所以这将按下CTRL按钮然后释放它,你可以在这之间做任何事情,比如睡几秒钟等。
但是现在如果你想编写长文本而不仅仅是特定按钮怎么办?send()会效率低下。对我们来说幸运的是,该write()函数正是这样做的,它将人工键盘事件发送到操作系统,模拟给定文本的输入,让我们试试看:
keyboard.write("Python Programming is always fun!", delay=0.1)

将延迟设置为0.1表示在按键之间等待0.1秒,这看起来像黑客电影中的花哨!
录制和播放键盘事件如何用Python控制你的键盘?你可以用这个模块做更多很酷的事情,比如使用record()函数记录键盘事件并使用函数再次播放它们play()
# record all keyboard clicks until esc is clicked events = keyboard.record('esc') # play these events keyboard.play(events)

Python如何使用keyboard键盘模块?我传递'esc'record()方法来记录按键的按下和释放,直到我按下'esc'按钮,然后我们再次使用play()方法播放这些事件。
Python控制键盘示例- 你可以通过简单地打印它来探索事件列表包含哪些内容,或者你??可以使用它get_typed_strings()来获取键入的字符串:
# print all typed strings in the events print(list(keyboard.get_typed_strings(events)))

这是我输入的内容:
[ 'Python is indeed the best programming language.!', 'right?', '', '']

另一个有趣的函数是on_release()函数,它接受一个回调,每当一个键被释放时就会执行这个回调:
# log all pressed keys keyboard.on_release(lambda e: print(e.name))

如何用Python控制你的键盘?这将打印你在键盘上按下的任何内容,有关如何使用此功能构建用于教育目的的键盘记录器的更多信息,请查看本教程。
最后,如果要删除所有使用中的键盘钩子,包括热键、缩写等:
keyboard.unhook_all()

结论Python如何控制键盘?我刚刚向你介绍了该模块,请查看文档或在 Python 交互式 shell 中键入help(keyboard)以了解其他功能和方法。
你还可以完全控制你的鼠标,该模块的同一作者又制作了另一个用于处理鼠标的模块!
使用这些模块,你可以构建桌面自动化脚本、键盘快捷键、键盘记录器(尽管作者不负责)等等!

    推荐阅读