假设我有一个无窗口的应用程序,在任务栏上只有一个图标(Windows,Mac OS X和Linux)。我想要它捕获一些关键&关键组合,让我们说右控制+右移。在键入正确的组合后,它会做一些事情,比如截屏。我可以在任务栏上执行无窗口应用程序,图标和屏幕截图,但我不知道如何全局监控键盘组合。请提出建议。非常感谢任何帮助或提示!提前谢谢!
答案 0 :(得分:8)
系统范围的密钥抓取是一个棘手的主题,但系统范围的密钥挂钩甚至更棘手。每个OS / GUI都有自己的解决方案,至少是为了抓取。 Qt4不公开此类功能,但Qt eXTension library解决了QxtGlobalShortcut的问题。这是一个很好的包装:
因此,您可以获取显式键组合,即特定键和修饰符(XGrabKey()允许更多一点),没有其他应用程序将获得。这里不支持密钥序列,即连续密钥组合。
键盘挂钩功能更强大,因为它允许在输入事件中窥视(甚至过滤它们)。它不仅被键盘记录器使用,而且它们是典型的关联。
如果您使用的是Windows,则可以阅读:
在X11中,它要复杂得多。您可能需要阅读至少两页:
有一个X Event Interception Extension,但它没有被维护,最终被删除了。
希望没有X11基础设施的帮助就可以完成。在Linux 2.6内核中有“事件接口”,称为evdev,可以在此处使用。详细信息可以在logkeys Linux keylogger的源代码中找到。它也可以用类似于evdev的效果来完成。看我的PoC项目: kaos - 屏幕显示的关键活动。
我没有Mac,所以没有进一步的参考。 ;)