使用Python 2.6设置全局热键

11

我想在 Python 2.6 中设置一个全局热键,监听 Windows 操作系统中的 Ctrl+DCtrl+Alt+D 组合键,请帮忙实现。


这个主题也在这里有涉及,不过是使用Python 3。 - Fonic
https://github.com/boppreh/keyboard#keyboard.add_hotkey - iMath
4个回答

9

6
我建议使用pyhk。它允许在Python中全局注册热键,并提供示例和文档。Pyhk基于pyhook构建。
注册热键非常简单:
pyhk.addHotkey(SomeHotkey,SomeFunction)

是的,它只支持Windows操作系统,因为它基于pyhook。 - schurpf

3
wx.Window 类的 RegisterHotKey 方法是你要找的方法。文档中说,该方法可以注册一个系统范围内的热键。每次用户按下此处注册的热键时,该窗口将接收到热键事件。即使应用程序在后台,也没有输入焦点,因为用户正在使用其他应用程序,它也将接收到事件。要将事件处理函数绑定到此热键,请使用 EVT_HOTKEY,id 设为 hotkeyId。如果成功注册了热键,则返回 True。因此,创建 `wx.Window` 实例,使用此方法注册所需的热键,如果你希望在单独的事件处理程序中处理事件而不是在窗口本身中处理(后者是默认值),则可以执行 PushEventHandler。如果此过程中还有什么不清楚的地方,请编辑你的问题以添加任何进一步的疑问!

由于RegisterHotKey接受win32con中的键,所以该解决方案对他无效,因为他需要VK_<letter>,而win32con中没有! - Unicorn

0

如果你想要在wxPython程序中使用快捷键(我假设你是这样想的,因为你使用了wxPython标签),那么你应该使用wx.AcceleratorTable。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接