Windows 正确检测活动窗口已更改

Windows properly detect active window changed

提问人:Quynh Chi 提问时间:12/9/2022 最后编辑:TienThanhQuynh Chi 更新时间:12/9/2022 访问量:177

问:

我编写了一个DLL需要知道当前活动窗口并检测活动窗口何时更改。

为了检测活动窗口已更改,我使用 SetWinEventHook 并侦听EVENT_SYSTEM_FOREGROUND事件。

hEvent = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND , NULL, WinEventProcCallback,0, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);

我发现这并不能始终如一地工作。有时我的回调被调用,有时不被调用,这取决于从什么切换到什么焦点。也许是另一个事件......

是否有任何 Windows (WINAPI?) 事件在每次活动(焦点)窗口更改时触发?我想订阅我的回调函数。

谢谢。

C++ Windows WinAPI 事件 挂钩

评论

4赞 chris 12/9/2022
也许您缺少的事件是当目标是提升进程的窗口时?如果它跳过为您提供高于您的流程的事件,我不会感到惊讶。

答: 暂无答案