guys have you noted that FindWindow ( in loop ), GetTopWindow + GetNextWindow ( in loop ) and EnumWindows + EnumChildWindows return different results! why?
On my Windows, FindWindow returns 502 windows, GetTopWindow 1687 windows and EnumWindows only 280 windows lol
read the MSDN pages carefully, and you'll see why :t