【问题标题】:Set global hotkey with Python 2.6使用 Python 2.6 设置全局热键
【发布时间】:2011-03-21 06:14:30
【问题描述】:

我想在 python 2.6 中设置一个全局热键来监听键盘快捷键 ctrl + Dctrl+ alt+ D 在 windows 上,请帮帮我

【问题讨论】:

标签: python keyboard wxpython hotkeys keyboard-shortcuts


【解决方案1】:

Tim Golden 的python/win32 站点是用python 进行win32 相关编程的有用资源。特别是,这个例子应该会有所帮助:

【讨论】:

    【解决方案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_
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 2011-02-15
      • 2014-05-27
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      相关资源
      最近更新 更多