Beispiel #1
0
        /// <summary>
        /// Gets the pop window (if any) of the specified window
        /// </summary>
        /// <param name="window">Window handle</param>
        /// <returns>handle if found, IntPtr.Zero else</returns>
        private static IntPtr getWindowPopup(IntPtr window)
        {
            var windowLevel  = 32;
            var targetWindow = window;

            while (windowLevel-- > 0)
            {
                IntPtr popupWindow = User32Interop.GetLastActivePopup(targetWindow);

                if (User32Interop.IsWindowVisible(popupWindow))
                {
                    return(popupWindow);
                }

                if (popupWindow == targetWindow)
                {
                    return(IntPtr.Zero);
                }

                targetWindow = popupWindow;
            }

            return(IntPtr.Zero);
        }