Windows应用程序需要关注

Windows application needs focus

本文关键字:应用程序 Windows      更新时间:2023-10-16

我正在为一个客户做一个应用程序,遇到了一个问题。

该应用程序与手机对话并进行一系列呼叫处理。它做的其中一件事是显示一个"接听来电"按钮。用鼠标点击这个就可以了。

但是客户希望有一个快捷键,这是一个问题。如果应用程序中的窗口有焦点,我就能获得焦点。但是,如果用户在另一个应用程序中,Windows的焦点窃取防止功能不允许我获取焦点。

请不要在这里讨论注意力窃取的利弊。我已经知道了,并把它们送给了我的客户。不管错不错,他们仍然想这样做,他们在买单,所以他们要做决定。

有许多解决方法,但它们似乎不再工作了。例如,我将HKEY_CURRENT_USERControl PanelDesktopForegroundFlashCount设置为3和…ForegroundLockTimeout = 0.

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

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

我希望你能帮忙。

我不知道这是什么时候,但你可以试试RegisterHotKey

它允许你监听键盘事件的系统范围,而不仅仅是当你的应用程序有焦点。你不需要提供你的窗口句柄,如果你让该参数为空,事件仍然被发送到你的线程。