Пример #1
0
        private int GetTabIndexToActivate(string tabsUrl)
        {
            AccessibleObjectFromWindow(GetDirectUIHWND(_hWnd), OBJID.OBJID_WINDOW, ref _accessible);

            CheckForAccessible();

            var index          = 0;
            var ieDirectUIHWND = new TabActivator(_hWnd);

            foreach (var accessor in ieDirectUIHWND.Children)
            {
                foreach (var child in accessor.Children)
                {
                    foreach (var tab in child.Children)
                    {
                        var tabUrl = tab.LocationUrl;

                        if (!string.IsNullOrEmpty(tabUrl))
                        {
                            if (tab.LocationUrl.Contains(tabsUrl))
                            {
                                return(index);
                            }
                        }

                        index++;
                    }
                }
            }

            return(-1);
        }
Пример #2
0
        internal void ActivateByTabsUrl(string tabsUrl)
        {
            var tabIndexToActivate = GetTabIndexToActivate(tabsUrl);

            AccessibleObjectFromWindow(GetDirectUIHWND(_hWnd), OBJID.OBJID_WINDOW, ref _accessible);

            CheckForAccessible();

            var index          = 0;
            var ieDirectUIHWND = new TabActivator(_hWnd);

            foreach (var accessor in ieDirectUIHWND.Children)
            {
                foreach (var child in accessor.Children)
                {
                    foreach (var tab in child.Children)
                    {
                        if (tabIndexToActivate >= child.ChildCount - 1)
                        {
                            return;
                        }

                        if (index == tabIndexToActivate)
                        {
                            tab.ActivateTab();
                            return;
                        }

                        index++;
                    }
                }
            }
        }
Пример #3
0
        private bool PushUrlToPolicyCenterWindow(string url)
        {
            InternetExplorer targetWindow   = null;
            bool             pushSuccessful = false;

            try
            {
                for (int i = 0; i < WindowsInstance.Count; i++)
                {
                    var tempIe = WindowsInstance.Item(i) as InternetExplorer;

                    if (!IsIeAndNamedWindow(tempIe, WindowName))
                    {
                        continue;
                    }

                    targetWindow = tempIe;
                    break;
                }

                if (targetWindow != null)
                {
                    targetWindow.Navigate2(url, null, "_self", null, null);

                    try
                    {
                        var hWnd = (IntPtr)targetWindow.HWND;
                        TabActivator.ShowWindowAsync(hWnd, TabActivator.SW_SHOWMAXIMIZED);
                        TabActivator.SetForegroundWindow(hWnd);

                        new TabActivator(hWnd).ActivateByTabsUrl(url);
                    }
                    catch (Exception aex)
                    {
                        _logger.Warn("*** An error occurred. See details below. ***");
                        _logger.Error("*** {0} ***", aex.Message);
                        _logger.Error("*** {0} ***", aex.StackTrace);
                    }

                    pushSuccessful = true;
                }
            }
            catch (Exception ex)
            {
                pushSuccessful = false;

                _logger.Warn("*** An error occurred. See details below. ***");
                _logger.Error("*** {0} ***", ex.Message);
                _logger.Error("*** {0} ***", ex.StackTrace);
            }

            return(pushSuccessful);
        }