📜  如何在Python中创建热键?

📅  最后修改于: 2022-05-13 01:54:21.240000             🧑  作者: Mango

如何在Python中创建热键?

这篇文章是关于如何使用Python创建热键的。但首先,让我们讨论一下什么是热键。热键是指定的键或键序列,用于在软件应用程序期间执行命令或执行选定任务:例如,在 Windows 计算机上,热键 Ctrl+S 通常不会快速保存文件。

通过将此类序列减少到几次击键,通常可以节省用户时间,因此“捷径”并使残障人士的计算变得更加容易。

方法 1:使用 pynput(该库允许您控制和监视输入设备。)

使用的方法:

  1. 我们从pynput导入键盘
  2. 然后我们创建一个集合来跟踪当前按下了哪些键输入
  3. 创建需要按下哪些热键来执行所需操作的列表。在这里,我们希望热键是 Shift+A 和 Shift+a
  4. 我们创建了一个函数execute(),它在按下热键的同时运行我们想要的程序。在这里,我们希望打印“检测到的热键”
  5. 创建一个函数on_press() 来检查在我们拥有的给定条件下是否按下了任何键。如果是,我们需要添加到集合中,然后查看是否所有键和特定组合都在当前集合中。如果是,那么我们执行我们的操作。
  6. 创建一个函数on_release() 来检查在我们拥有的给定组合下释放的任何键。如果是,我们需要将其从当前集合中删除。
  7. 最后,运行程序。
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