Beispiel #1
0
        private bool FindActivateBrowserWindow(IntPtr hwnd, SettingValues.BrowserInfo browserInfo)
        {
            if (WinAPI.IsWindow(hwnd))
            {
                if (WindowIsOnCurrentDesktop(hwnd))
                {
                    Debug.WriteLine("Activate Known Browser " + Current + " " + hwnd);
                    ActivateBrowserWindow(hwnd);
                    return(true);
                }
            }

            // Our last active record was not valid so find topmost on this desktop
            BrowserWinInfo browserWinInfo = new BrowserWinInfo();;
            bool           notFinished    = true;

            do
            {
                var window = WinAPI.FindWindowEx(IntPtr.Zero, browserWinInfo.last, browserInfo.ClassName, null);
                notFinished = IterateFindTopLevelBrowserOnCurrentDesktop(window, browserWinInfo, browserInfo);
            } while (notFinished);
            if (browserWinInfo.topOnDesktop != IntPtr.Zero)
            {
                Debug.WriteLine("Activate Unknown Browser " + Current + " " + browserWinInfo.topOnDesktop);
                ActivateBrowserWindow(browserWinInfo.topOnDesktop);
                return(true);
            }

            return(false);
        }
Beispiel #2
0
        private bool IsWindowDefaultBrowser(IntPtr hwnd, SettingValues.BrowserInfo browserInfo)
        {
            var exename = GetWindowExeName(hwnd);

            return(browserInfo != null && exename != null && exename.ToUpper() == browserInfo.ExeName.ToUpper());
        }
Beispiel #3
0
        private bool IterateFindTopLevelBrowserOnCurrentDesktop(IntPtr hwnd, BrowserWinInfo browserWinInfo, SettingValues.BrowserInfo browserInfo)
        {
            if (hwnd == IntPtr.Zero)
            {
                // None left to check
                return(false);
            }

            browserWinInfo.last = hwnd;
            if (browserWinInfo.top == IntPtr.Zero && IsWindowDefaultBrowser(hwnd, browserInfo))
            {
                browserWinInfo.top = hwnd;
                if (WindowIsOnCurrentDesktop(hwnd))
                {
                    // Already top level so nothing to do
                    browserWinInfo.topOnDesktop = IntPtr.Zero;
                    return(false);
                }
            }

            if (WindowIsOnCurrentDesktop(hwnd) && IsWindowDefaultBrowser(hwnd, browserInfo))
            {
                browserWinInfo.topOnDesktop = hwnd;
                return(false);
            }
            // Keep going
            return(true);
        }
 private bool IsWindowDefaultBrowser(IntPtr hwnd, SettingValues.BrowserInfo browserInfo)
 {
     return(browserInfo != null && GetWindowExeName(hwnd) == browserInfo.ExeName);
 }