Python 在运行时记录新的热键

Posted

技术标签:

【中文标题】Python 在运行时记录新的热键【英文标题】:Python record new hotkey in runtime 【发布时间】:2020-04-06 06:13:18 【问题描述】:

我使用的是 Windows,安装新的库不是问题。 我使用 Python 键盘库来处理热键按下和连接到它们的功能。 要绑定热键,我使用例如keyboard.add_hotkey("ctrl+shift+e",print,args=["Hotkey was pressed!"])

要注册该组合,我需要字符串“ctrl+shift+e”。我希望有可能在运行时记录一个新组合,然后可以将其绑定到一个函数。我需要它作为设置窗口,因此用户只需按下示例组合即可配置单个设置。

我想做什么(简化示例):

import keyboard, time

time.sleep(5)
key_combination = read_currently_pressed_combination()
keyboard.add_hotkey(key_combination, print, args=["Hotkey %s was pressed!" % key_combination ])
keyboard.wait()

此代码显然缺少整个记录部分。 keyboard.record 不符合我的需要,因为它只是提供了录音的可重放版本,而不是组合的实际字符串(据我所知)。 这是否可以使用键盘或 msvcrt 或任何其他用于键盘的库?我很高兴有一个解决方案。尝试自己弄清楚,但找不到任何有关此的信息。 编辑:我不介意打开一个额外的窗口来记录键。

【问题讨论】:

【参考方案1】:

好吧,没关系。通过深入挖掘键盘库的源代码,找到了一个未记录的解决方案。 keyboard.get_hotkey_name() 正是我所需要的。所以这个问题就解决了。

【讨论】:

以上是关于Python 在运行时记录新的热键的主要内容,如果未能解决你的问题,请参考以下文章

C++ 热键运行功能

最小化程序时的Tkinter热键

VScode:编辑时执行最后一个终端命令的热键?

如何在 Python Django 中运行单元测试时禁用日志记录?

Python的keyboard模块使用多线程?

每次构建/运行时,VS Code 都会打开一个新的调试控制台