获取最后激活窗口的窗口句柄

Nic*_*ley 5 c c++ winapi

我正在开发一个位于系统托盘中的应用程序,可以在活动窗口上执行操作。但是,当单击系统托盘中的图标时,GetForegroundWindow()将返回任务栏。我需要获取任务栏之前处于活动状态的窗口。

我尝试使用EnumWindows和枚举桌面窗口GetWindow,但这通常会显示最后不活动的桌面小工具和其他顶级项目。是否有可能,或者当窗口停用时信息完全丢失?

And*_*son 2

我认为获取该信息的唯一方法是安装系统范围的挂钩(SetWindowsHookExWH_CALLWNDPROC并捕获所有信息WM_ACTIVATEAPP。这甚至可以让您跟踪哪个窗口处于活动状态的完整历史记录。