【问题标题】:Grab keyboard events outside the appliaction in Qt在 Qt 中抓取应用程序外部的键盘事件
【发布时间】:2014-09-16 04:33:26
【问题描述】:

每次按下键盘上的键时,我都需要从 MP3 或 Wav 文件中发出哔声。

知道如何在 Qt 中实现这一点吗?

如果您对我需要这个的原因感兴趣:

我正在使用 Tactys 的玻璃键盘: http://www.tactys.com/?page_id=303 因为手腕疼痛。不幸的是,键盘的默认哔声太大声并打扰了我的同事。关闭哔哔声让我按到手指严重产生疼痛。 当我编写一个时间跟踪器应用程序时,我想增强它在每次击键时发出声音。

谢谢

【问题讨论】:

  • 仅适用于特定操作系统?我猜 Qt 并没有提供开箱即用的功能。您可以尝试来自 Qt 扩展库“Qxt”的QxtGlobalShortcut,但这可能不起作用(至少不适用于修饰键,因为它们不是应用程序识别的击键)。对于仅限 Linux 的解决方案:我可以想到一些 xinput 挂钩... Windows:不知道,抱歉。
  • 您好,感谢您的回复,不幸的是,我需要一个便携式解决方案,如下面的 Java 解决方案:code.google.com/p/jnativehook 抱歉,我刚刚阅读了下一个答案,它看起来是便携式的...
  • Java 库听起来比 Qxt 更有前途。如果我没记错的话,Qxt 不能抓取单个按键(尤其是修饰键 Ctrl、Shift 等),只能抓取组合键。
  • 谢谢,确实我用指定的库在java中做了一个简单的应用程序,解决了我的问题。它没有集成到我的 Qt 应用程序中,但我将它作为一项服务,这对我的目的来说也很好。

标签: c++ qt events keyboard


【解决方案1】:

作为@leemes said,您可以使用QxtGlobalShortcut。它支持Linux/X11Mac OS XWindows以及Qt4/5。

【讨论】:

    【解决方案2】:

    对于 Windows,请尝试使用此示例 C++ Qt 104 - Native Code, Basic Windows KeyLogger。在任何情况下,都必须使用本机代码。祝你好运!

    【讨论】:

    • 您好,感谢您的回复,不幸的是它应该可以在 windows 上移植
    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2018-11-10
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多