public static IntPtr GetForegroundWindow()
{
IntPtr win = GetTopWindow();
while(win != IntPtr.Zero) {
if (IsWindowVisible(win) && !IsTaskBar(win) && !IsStartButton(win) && !HasZeroWindowRect(win))
return win;
win = GetWindow(win, GW_HWNDNEXT);
}
return IntPtr.Zero;
}