Windows应用程序需要关注

时间:2014-06-20 12:02:09

标签: c++ qt winapi setfocus

我正在为客户开发应用程序并遇到问题。

应用程序与移动电话对话并进行一堆呼叫处理。其中一项功能是显示“接听电话”按钮。用鼠标点击它可以正常工作。

但是客户希望有一个键盘快捷键,这是一个问题。如果应用程序中的窗口具有焦点,我可以获得焦点。但是,如果用户处于不同的应用程序中,Windows焦点窃取预防不允许我关注。

请不要在这里讨论重点偷窃的利弊。我已经了解它们并将它们交给我的客户。错误与否,他们仍然想要这样做,他们正在支付账单,所以他们决定。

有很多解决方法,但它们似乎不再起作用了。例如,我将HKEY_CURRENT_USER \ Control Panel \ Desktop \ ForegroundFlashCount设置为3,将... \ ForegroundLockTimeout设置为0.

那么我的选择是什么?这不可能吗?或者我是否必须构建一个病毒检查器会讨厌的键盘钩子应用程序?

这是一个Qt / C ++应用程序,但是如果你有C#示例代码可以做到这一点,那也很好。

我希望你能提供帮助。

1 个答案:

答案 0 :(得分:2)

我不知道这是多么过时,但您可以尝试RegisterHotKey

它允许您在系统范围内监听键盘事件,而不仅仅是在您的应用程序具有焦点时。您不必提供窗口句柄,如果您将该参数保留为null,则事件仍会发布到您的主题。