当应用程序没有焦点时检测按键

Detecting keypresses when application has no focus

本文关键字:检测 焦点 应用程序      更新时间:2023-10-16

我有一个位于托盘中的应用程序,我需要检测用户活动,以便我可以执行某些任务。对于windows,我知道我可以使用GetAsyncKeyState或SetWindowsHookEx,但我想有一个跨平台的解决方案。

有人有解决这个问题的办法吗?也许是keyPressEvent的重新实现?或者仅仅设置一些宏并单独执行会更容易吗?

这是平台特有的。

我将确保隔离您所做的任何事情,并将捕获事件和记录击键的机制与这些击键的消耗分开。这样,你只需要在每个平台上实现捕获/记录机制,所有其他代码都应该是非常可移植的。

您可能想看看SDL在这里做了什么。http://www.libsdl.org/

他们已经成功地抽象出了所有这些东西,而不仅仅是键盘。