我知道使用GetForegroundWindow
函数可以获取当前活动窗口句柄,但现在i want to detect when the active window (of any application) changes (become active)
。我想到的第一个解决方案是
我想知道是否有更好的方法可以使用Windows消息或其他东西。
答案 0 :(得分:7)
使用SetWindowsHookEx
安装CBT挂钩。 MSDN描述了您将提供的callback function:
系统在激活,创建,销毁,最小化,最大化,移动或调整窗口大小之前调用此函数;在完成系统命令之前;从系统消息队列中删除鼠标或键盘事件之前;在设置键盘焦点之前;或者在与系统消息队列同步之前。基于计算机的培训(CBT)应用程序使用此挂钩过程从系统接收有用的通知。
您感兴趣的电话是第一个参数为HCBT_Activate
的电话。 wParam
参数将告诉您窗口句柄。