Как вариант. HWND KernelGetActiveWindow () { PUSER_MESSAGE_QUEUE ms; ms = (W32THREAD*)PsGetCurrentThread()->Tcb.Win32Thread->MessageQueue; return ( ms ? ms->ActiveWindow : 0); } Ещё можно глянуть в User32!GetActiveWindow. Там вроде сделано по-другому.