如何在Python中创建热键?
这篇文章是关于如何使用Python创建热键的。但首先,让我们讨论一下什么是热键。热键是指定的键或键序列,用于在软件应用程序期间执行命令或执行选定任务:例如,在 Windows 计算机上,热键 Ctrl+S 通常不会快速保存文件。
通过将此类序列减少到几次击键,通常可以节省用户时间,因此“捷径”并使残障人士的计算变得更加容易。
方法 1:使用 pynput(该库允许您控制和监视输入设备。)
使用的方法:
- 我们从pynput导入键盘
- 然后我们创建一个集合来跟踪当前按下了哪些键输入
- 创建需要按下哪些热键来执行所需操作的列表。在这里,我们希望热键是 Shift+A 和 Shift+a
- 我们创建了一个函数execute(),它在按下热键的同时运行我们想要的程序。在这里,我们希望打印“检测到的热键”
- 创建一个函数on_press() 来检查在我们拥有的给定条件下是否按下了任何键。如果是,我们需要添加到集合中,然后查看是否所有键和特定组合都在当前集合中。如果是,那么我们执行我们的操作。
- 创建一个函数on_release() 来检查在我们拥有的给定组合下释放的任何键。如果是,我们需要将其从当前集合中删除。
- 最后,运行程序。
Python3
from pynput import keyboard
cmb = [{keyboard.Key.shift, keyboard.Key(char='a')},{keyboard.Key.shift, keyboard.Key(char='A')}]
current = set()
def execute():
print("Detected hotkey")
def on_press(key):
if any([key in z for z in cmb]):
current.add(key)
if any(all(k in current for k in z) for z in cmb):
execute()
def on_release(key):
if any([key in z for z in cmb]):
current.remove(key)
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
Python3
# Keyboard module in Python
import keyboard
# press ctrl+shift+z to print "Hotkey Detected"
keyboard.add_hotkey('ctrl + shift + z', print, args =('Hotkey', 'Detected'))
keyboard.wait('esc')
输出 :
方法二: 使用 键盘(请参阅文章: Python中的键盘模块)
Python提供了一个名为 keyboard 的库,用于强制完全控制键盘。它是一个小型Python库,可以挂钩全局事件、注册热键、模拟按键等等。
- 它有助于输入键,记录键盘活动并阻止键,直到输入指定的键并模拟键。
- 它捕获所有键,甚至屏幕上的键盘事件也被捕获。
- 键盘模块支持复杂的热键。
- 使用此模块,我们将侦听和发送键盘事件。它适用于 Windows 和 Linux 操作系统。
蟒蛇3
# Keyboard module in Python
import keyboard
# press ctrl+shift+z to print "Hotkey Detected"
keyboard.add_hotkey('ctrl + shift + z', print, args =('Hotkey', 'Detected'))
keyboard.wait('esc')
输出:
Hotkey Detected