获取上次激活窗口的窗口句柄

时间:2009-05-20 00:02:47

标签: c++ c winapi

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

我尝试使用EnumWindowsGetWindow枚举桌面窗口,但这通常会打开桌面小工具和其他最不活跃的热门项目。是否可以,或者在停用窗口时信息完全丢失?

1 个答案:

答案 0 :(得分:2)

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