使用 Python 2.6 设置全局热键
Posted
技术标签:
【中文标题】使用 Python 2.6 设置全局热键【英文标题】:Set global hotkey with Python 2.6 【发布时间】:2011-03-21 06:14:30 【问题描述】:我想在 python 2.6 中设置一个全局热键来监听键盘快捷键 ctrl + D 或 ctrl+ alt+ D 在 windows 上,请帮帮我
【问题讨论】:
这个主题也包含在 [here][1] 中,但是使用 Python 3。[1]:***.com/questions/16615087/… github.com/boppreh/keyboard#keyboard.add_hotkey 【参考方案1】:Tim Golden 的python/win32 站点是用python 进行win32 相关编程的有用资源。特别是,这个例子应该会有所帮助:
Catch system-wide hotkeys【讨论】:
【参考方案2】:我建议pyhk。它允许在 python 中进行全局范围的热键注册,并附带示例和文档。 Pyhk 建立在 pyhook 之上。
热键注册很简单:
pyhk.addHotkey(SomeHotkey,SomeFunction)
【讨论】:
是的,只有 windows,因为它基于 pyhook。【参考方案3】:wx.Window
类的 RegisterHotKey 方法是您正在寻找的——正如文档所说,
注册系统范围的热键。每一个 用户按下热键的时间 在这里注册,这个窗口将 接收热键事件。它会 接收事件,即使 应用程序在后台并且 没有输入焦点,因为 用户正在与其他人一起工作 应用。绑定事件处理程序 此热键的功能使用 EVT_HOTKEY id 等于 hotkeyId。退货 如果热键已注册,则为真 成功。
所以,创建一个 `wx.Window 的实例,用这个方法注册你想要的热键,如果你想在一个单独的事件处理程序中而不是在窗口本身(后者是默认值)。
您在此过程中是否还有其他不完全清楚的内容...?如果是这样,请编辑您的问题以添加您可能遇到的任何其他问题!
【讨论】:
由于 RegisterHotKey 接受来自 win32con 的密钥,因此该解决方案对他不起作用,因为他需要 win32con 中不存在的 VK_如果你想在你的 wxPython 程序中使用热键(我假设你这样做是因为 wxPython 标签),那么你应该使用 wx.AcceleratorTable。
【讨论】:
以上是关于使用 Python 2.6 设置全局热键的主要内容,如果未能解决你的问题,请参考以下文章