全域窗口激活事件鉤子

void CALLBACK WinEventProc(HWINEVENTHOOK hHook, DWORD event, HWND hWnd,
LONG idObject, LONG idChild, DWORD dwEventThread,
DWORD dwmsEventTime)
{
    if (event == EVENT_SYSTEM_FOREGROUND)
    {
        // 当前前景窗口更改,hWnd 包含新的前景窗口句柄
    }
}

HWINEVENTHOOK hHook = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND,
NULL, WinEventProc, 0, 0, WINEVENT_OUTOFCONTEXT);
if (hHook == NULL)
{
    // 注册事件钩子失败
}