Qt4 钩键及;Qt 4.6键盘上的组合键

Qt4 钩键及;Qt 4.6键盘上的组合键,qt4,keyboard,events,hook,qt4.6,Qt4,Keyboard,Events,Hook,Qt4.6,假设我有一个无窗口应用程序,它在任务栏上只有一个图标(Windows、Mac OS X和Linux)。我想让它捕捉一些键和键的组合,比如说右键控制+右键移位。输入正确的组合后,它会做一些事情,比如截图。我可以做无窗口应用程序、任务栏上的图标和屏幕截图,但我不知道如何全局监控键盘上的按键组合。请告知。非常感谢任何帮助或提示!提前谢谢 系统范围内的密钥抓取是一个棘手的问题,但系统范围内的密钥挂钩则更为棘手。每个OS/GUI都有自己的解决方案,至少在抓取方面是如此。Qt4没有公开这样的特性,但解决了它

假设我有一个无窗口应用程序,它在任务栏上只有一个图标(Windows、Mac OS X和Linux)。我想让它捕捉一些键和键的组合,比如说右键控制+右键移位。输入正确的组合后,它会做一些事情,比如截图。我可以做无窗口应用程序、任务栏上的图标和屏幕截图,但我不知道如何全局监控键盘上的按键组合。请告知。非常感谢任何帮助或提示!提前谢谢

系统范围内的密钥抓取是一个棘手的问题,但系统范围内的密钥挂钩则更为棘手。每个OS/GUI都有自己的解决方案,至少在抓取方面是如此。Qt4没有公开这样的特性,但解决了它的问题。这是一个很好的包装:

  • /在X11中
  • /在窗户里
  • 在Mac OS X中注册EventThotKey()/UnregistereEventHotKey()
因此,您可以获取其他应用程序无法获得的显式键组合,即特定键和修饰符(XGrabKey()允许更多)。此处不支持键序列,即连续键组合


键盘挂钩功能更强大,因为它允许查看输入事件(甚至过滤它们)。它不仅被键盘记录者使用,而且在这里它们是一种典型的关联

如果您进入Windows,则可以阅读:

  • 约瑟夫·M·纽科姆
在X11中,它要复杂得多。您可能至少需要阅读两页:

  • -有一些背景
  • -了解困难
有一个,但没有维护,最终被删除

希望它可以在没有X11基础设施帮助的情况下完成。在Linux2.6内核中,有一个“事件接口”,称为,可以在这里利用它。详细信息可在的源代码中找到。它也可以使用与evdev类似的东西来实现。请参阅我的PoC项目: -屏幕显示上的关键活动


我没有Mac,所以没有更多的参考资料

在我看来,你们不能抓住或捕捉钥匙,因为你们并没有聚焦到你们的窗户上。只是好奇而已。你在等待比我更彻底的答案吗?;)可能是+1的副本,谢谢。我没有注意到你的回答。我使用libqxt在macosx上没有成功。正如我所说,我不是Mac用户,所以我在这里帮不了你。抱歉。很有趣,现在是一个删除了
内容的空页面。是我的错吗?;)我会更新上面的答案。别担心,有一个好消息<代码>http://web.archive.org/web/20080510093117/http://msdn.microsoft.com/en-us/library/ms997537.aspx)
-凯尔·马什的Win32钩子