예제 #1
0
        private static void Refresh(WbRefreshThread refresher, Proxy proxy)
        {
            WebBrowserEx wbWebBrowser = new WebBrowserEx();

            wbWebBrowser.ScriptErrorsSuppressed = true;

            if (refresher.useProxy)
            {
                wbWebBrowser.ProxyServer = proxy.IpAndPort;
            }
            else
            {
                wbWebBrowser.ProxyServer = "";
            }
            wbWebBrowser.Navigate(refresher.Url);

            Stopwatch sw = new Stopwatch();

            sw.Start();
            while (wbWebBrowser.ReadyState < WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
                if (sw.ElapsedMilliseconds > refresher.timeOut * 1000)
                {
                    throw new WebException(WebExceptionStatus.Timeout.ToString());
                }
            }
            sw.Stop();
            refresher.SuccessCount++;
            refresher.Description = wbWebBrowser.ProxyServer + "刷新成功!";
        }
예제 #2
0
        private void Publish(WebBrowserEx browser)
        {
            fenxiaoProductListIndex = 0;
            addProductCount         = 0;

            if (fenxiaoProductList == null)
            {
                fenxiaoProductList = new List <FenXiaoModel>();
            }
            fenxiaoProductList.Clear();
            string html = this.manager.DocumentHtml();

            List <FenXiaoModel> tmpList = FenXiaoManager.GetProductFromVender(html);

            if (tmpList != null && tmpList.Count > 0)
            {
                fenxiaoProductList.AddRange(tmpList);
                addFenXiaoProductTimer.Start();
            }
            else
            {
                // 下一个 vender
                if (publishAllVender)
                {
                    Vender();
                }
            }
        }
예제 #3
0
        public DownloadBrowserView(DetailsModel detailsModel, DocumentTemplate <Metadata> downloadTemplate, PageDownloader pageDownloader, Configuration.ConfigDetailsBrowserView downloadBrowserSettings)
        {
            InitializeComponent();

            DetailsModel            = detailsModel;
            DownloadTemplate        = downloadTemplate;
            PageDownloader          = pageDownloader;
            DownloadBrowserSettings = downloadBrowserSettings;

            webBrowser = new WebBrowserEx();

            SuspendLayout();

            webBrowser.AllowWebBrowserDrop = false;
            webBrowser.Dock = DockStyle.Fill;
            webBrowser.Name = "downloadWwebBrowser";
            webBrowser.BeforeDocumentCompleted += WebBrowser_BeforeDocumentCompleted;

            PageDownloader.PageDownloadReportProgress += PageDownloader_PageDownloadReportProgress;
            PageDownloader.PagesDownloadStarted       += PageDownloader_PagesDownloadStarted;
            PageDownloader.PagesDownloadCancelled     += PageDownloader_PagesDownloadCancelled;
            PageDownloader.PagesDownloadCompleted     += PageDownloader_PagesDownloadCompleted;

            DetailsModel.MetadataChanged += DetailsModel_MetadataChanged;

            Controls.Add(webBrowser);

            ResumeLayout(false);
        }
예제 #4
0
        public WebBrowserTreeNodeToolTip(IPathFormatter pathFormatter, DocumentTemplate <Metadata> galleryTooltipTemplate)
        {
            InitializeComponent();

            Visible = false;

            PathFormatter          = pathFormatter;
            GalleryTooltipTemplate = galleryTooltipTemplate;
            associatedControls     = new Dictionary <TreeNode, int>();
            observedTreeViews      = new List <TreeView>();
            webBrowser             = new WebBrowserEx();

            SuspendLayout();

            //
            //
            //
            webBrowser.AllowWebBrowserDrop = false;
            //webBrowser.AllowNavigation = false;
            webBrowser.ScriptErrorsSuppressed     = true;
            webBrowser.WebBrowserShortcutsEnabled = false;
            webBrowser.Dock               = DockStyle.Fill;
            webBrowser.Name               = "tooltipWebBrowser";
            webBrowser.TabIndex           = 0;
            webBrowser.DocumentCompleted += WebBrowser_DocumentCompleted;

            //
            // this
            //
            Controls.Add(webBrowser);

            ResumeLayout(false);
        }
예제 #5
0
        public StartupWebBrowserView(CoreTextFormatter coreTextFormatter, DocumentTemplate <object> startupTemplate, ApplicationLoader applicationLoader)
        {
            InitializeComponent();

            CoreTextFormatter = coreTextFormatter;
            StartupTemplate   = startupTemplate;
            ApplicationLoader = applicationLoader;

            webBrowser = new WebBrowserEx();

            SuspendLayout();

            webBrowser.Name                           = "startupWebBrowser";
            webBrowser.Dock                           = DockStyle.Fill;
            webBrowser.AllowNavigation                = false;
            webBrowser.AllowWebBrowserDrop            = false;
            webBrowser.IsWebBrowserContextMenuEnabled = false;
            webBrowser.WebBrowserShortcutsEnabled     = false;
            webBrowser.ScriptErrorsSuppressed         = true;
            webBrowser.ScrollBarsEnabled              = false;
            webBrowser.DocumentText                   = StartupTemplate.GetFormattedText();

            Controls.Add(webBrowser);

            ApplicationLoader.ProgressChanged += ApplicationLoader_ProgressChanged;

            ResumeLayout(false);
        }
예제 #6
0
        public WebBrowserToolTip(IPathFormatter pathFormatter, DocumentTemplate <Metadata> galleryTooltipTemplate)
        {
            InitializeComponent();

            Visible = false;

            PathFormatter          = pathFormatter;
            GalleryTooltipTemplate = galleryTooltipTemplate;
            webBrowser             = new WebBrowserEx();
            associatedControls     = new Dictionary <Control, int>();

            SuspendLayout();

            //
            //
            //
            webBrowser.AllowWebBrowserDrop    = false;
            webBrowser.AllowNavigation        = false;
            webBrowser.ScriptErrorsSuppressed = true;
            webBrowser.DocumentCompleted     += WebBrowser_DocumentCompleted;

            //
            //
            //
            Controls.Add(webBrowser);

            ResumeLayout(false);
        }
예제 #7
0
        private void AdvancedWebBrowserControl_Load(object sender, EventArgs e)
        {
            if (this.DesignMode)
            {
                return;
            }

            this.wb = new WebBrowserEx();
            this.panel1.Controls.Add(this.wb);
            this.wb.Dock = DockStyle.Fill;

            this.wb.StatusTextChanged    += new EventHandler(wb_StatusTextChanged);
            this.wb.CanGoBackChanged     += new EventHandler(wb_CanGoBackChanged);
            this.wb.CanGoForwardChanged  += new EventHandler(wb_CanGoForwardChanged);
            this.wb.DocumentTitleChanged += new EventHandler(wb_DocumentTitleChanged);
            this.wb.Navigating           += new WebBrowserNavigatingEventHandler(wb_Navigating);
            this.wb.NavigateError        += new WebBrowserExNavigateErrorEventHandler(wb_NavigateError);
            this.wb.Navigated            += new WebBrowserNavigatedEventHandler(wb_Navigated);
            this.wb.NewWindow            += new CancelEventHandler(wb_NewWindow);
            this.wb.NewWindow3           += new WebBrowserExNavigatingEventHandler(wb_NewWindow3);
            this.wb.NavigateComplete2    += new WebBrowserNavigatedEventHandler(wb_NavigateComplete2);
            this.wb.DocumentCompleted    += wb_DocumentCompleted;
            this.wb.ProgressChanged      += wb_ProgressChanged;

            this.wb.Navigate("http://selenium-excel-addin.jpn.org");
            this.toolStripProgressBar1.Visible = false;
        }
예제 #8
0
        private void InitHtmlRender(out WebBrowserEx browser)
        {
            browser = new WebBrowserEx()
            {
                DocumentText               = string.Empty.GetHtmlFromTemplate(),
                Dock                       = System.Windows.Forms.DockStyle.Fill,
                ScriptErrorsSuppressed     = true,
                IgnoreAllError             = true,
                WebBrowserShortcutsEnabled = false,
                AllowNavigation            = true,
                AllowWebBrowserDrop        = false
            };
            browser.Navigate("about:blank");
            browser.Document.Write(string.Empty);

            try
            {
                if (browser is System.Windows.Forms.WebBrowser)
                {
                    browser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
                    browser.Navigating        += new System.Windows.Forms.WebBrowserNavigatingEventHandler(WebBrowser_Navigating);
                    browser.ProgressChanged   += new System.Windows.Forms.WebBrowserProgressChangedEventHandler(WebBrowser_ProgressChanged);
                    browser.PreviewKeyDown    += new System.Windows.Forms.PreviewKeyDownEventHandler(WebBrowser_PreviewKeyDown);
                    TrySetSuppressScriptErrors(webHtml, true);
                }
            }
            catch (Exception ex) { ex.ERROR(); }
        }
예제 #9
0
        void Wb_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
        {
            if (e.CurrentProgress == e.MaximumProgress)
            {
                WebBrowserEx wb = sender as WebBrowserEx;
                wb.ProgressChanged -= Wb_ProgressChanged;
                try
                {
                    int scrollWidth  = 0;
                    int scrollHeight = 0;

                    scrollHeight = wb.Document.Body.ScrollRectangle.Height;
                    scrollWidth  = wb.Document.Body.ScrollRectangle.Width;
                    wb.Size      = new Size(scrollWidth, scrollHeight);

                    Bitmap bitmap = new Bitmap(wb.Width, wb.Height);
                    for (int Xcount = 0; Xcount < bitmap.Width; Xcount++)
                    {
                        for (int Ycount = 0; Ycount < bitmap.Height; Ycount++)
                        {
                            bitmap.SetPixel(Xcount, Ycount, Color.Black);
                        }
                    }
                    wb.DrawToBitmap(bitmap, new Rectangle(0, 0, wb.Width, wb.Height));
                }
                catch { }
            }
        }
예제 #10
0
        private void LoadVenderList(WebBrowserEx browser)
        {
            string             html = manager.DocumentHtml();
            List <VenderModel> tmp  = FenXiaoManager.GetVender(html);

            if (tmp != null && tmp.Count > 0)
            {
                this.list.AddRange(tmp);
            }

            // 分页处理
            if (html.IndexOf("class=\"page-next\"") != -1)
            {
                var htmlElement = manager.FindID("dpl:pagination");
                if (htmlElement != null)
                {
                    htmlElement = manager.FindClassName("page-next");
                    if (htmlElement != null)
                    {
                        manager.ClickHelemnt(htmlElement);

                        this.TabText = "发布分销商品(商家列表加载中...)";
                        return;
                    }
                }

                this.TabText = "发布分销商品(商家列表加载完成)";
                BindVenderList();
            }
            else
            {
                this.TabText = "发布分销商品(商家列表加载完成)";
                BindVenderList();
            }
        }
예제 #11
0
        public DetailsBrowserView(DetailsBrowserFilter detailsBrowserFilter, DetailsModel detailsModel, DocumentTemplate <Metadata> detailsTemplate, DocumentTemplate <Metadata> downloadTemplate, DocumentTemplate <Metadata> detailsPreloadTemplate
                                  , GalleryDownloader galleryDownloader
                                  , PageDownloader pageDownloader
                                  , CoverDownloader coverDownloader
                                  , MetadataKeywordLists metadataKeywordLists
                                  , Configuration.ConfigDetailsBrowserView detailsBrowserSettings
                                  , ISearchResultCache searchResultCache
                                  , ICacheFileSystem cacheFileSystem)
        {
            InitializeComponent();

            DetailsBrowserFilter   = detailsBrowserFilter;
            DetailsModel           = detailsModel;
            DetailsTemplate        = detailsTemplate;
            DownloadTemplate       = downloadTemplate;
            DetailsPreloadTemplate = detailsPreloadTemplate;
            GalleryDownloader      = galleryDownloader;
            PageDownloader         = pageDownloader;
            CoverDownloader        = coverDownloader;
            MetadataKeywordLists   = metadataKeywordLists;
            DetailsBrowserSettings = detailsBrowserSettings;
            SearchResultCache      = searchResultCache;
            CacheFileSystem        = cacheFileSystem;

            webBrowser = new WebBrowserEx();

            SuspendLayout();

            webBrowser.AllowWebBrowserDrop = false;
            webBrowser.Dock = DockStyle.Fill;
            webBrowser.Name = "detailsWwebBrowser";
            webBrowser.BeforeDocumentCompleted += WebBrowser_BeforeDocumentCompleted;
            webBrowser.DocumentCompleted       += WebBrowser_DocumentCompleted;

            GalleryDownloader.GalleryDownloadReportProgress += GalleryDownloader_GalleryDownloadReportProgress;
            GalleryDownloader.GalleryDownloadStarted        += GalleryDownloader_GalleryDownloadStarted;
            GalleryDownloader.GalleryDownloadCancelled      += GalleryDownloader_GalleryDownloadCancelled;
            GalleryDownloader.GalleryDownloadCompleted      += GalleryDownloader_GalleryDownloadCompleted;

            PageDownloader.PageDownloadReportProgress += PageDownloader_PageDownloadReportProgress;
            PageDownloader.PagesDownloadStarted       += PageDownloader_PagesDownloadStarted;
            PageDownloader.PagesDownloadCancelled     += PageDownloader_PagesDownloadCancelled;
            PageDownloader.PagesDownloadCompleted     += PageDownloader_PagesDownloadCompleted;

            CoverDownloader.CoverDownloadReportProgress += CoverDownloader_CoverDownloadReportProgress;
            CoverDownloader.CoversDownloadStarted       += CoverDownloader_CoversDownloadStarted;
            CoverDownloader.CoversDownloadCancelled     += CoverDownloader_CoversDownloadCancelled;
            CoverDownloader.CoversDownloadCompleted     += CoverDownloader_CoversDownloadCompleted;

            MetadataKeywordLists.WhitelistChanged  += Form_WhiteListChanged;
            MetadataKeywordLists.BlacklistChanged  += Form_BlackListChanged;
            MetadataKeywordLists.IgnorelistChanged += Form_IgnoreListChanged;
            MetadataKeywordLists.HidelistChanged   += Form_HideListChanged;

            DetailsModel.MetadataChanged += DetailsModel_MetadataChanged;

            Controls.Add(webBrowser);

            ResumeLayout(false);
        }
예제 #12
0
        private void LoadAllOfflineProduct()
        {
            allProductList.Clear();
            this.listView.Items.Clear();

            webBrowser = new WebBrowserEx();
            webBrowser.Navigate(URL);
            webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
        }
예제 #13
0
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            mainMenu          = new System.Windows.Forms.MainMenu();
            menuItemBack      = new System.Windows.Forms.MenuItem();
            menuItemToFriends = new System.Windows.Forms.MenuItem();
            webBrowser        = new WebBrowserEx();

            this.SuspendLayout();

            //
            // webBrowser
            //
            this.webBrowser.Name   = "webBrowser";
            this.webBrowser.Anchor = System.Windows.Forms.AnchorStyles.Left
                                     | System.Windows.Forms.AnchorStyles.Right
                                     | System.Windows.Forms.AnchorStyles.Top
                                     | System.Windows.Forms.AnchorStyles.Bottom;
            this.webBrowser.Location = new System.Drawing.Point(0, 0);
            this.webBrowser.Size     = new System.Drawing.Size(240, 268);
            this.webBrowser.Dock     = DockStyle.Fill;
            this.webBrowser.ShowWaitCursorWhileLoading = true;
            //
            // mainMenu
            //
            this.mainMenu.MenuItems.Add(this.menuItemBack);
            this.mainMenu.MenuItems.Add(this.menuItemToFriends);

            //
            // menuItemBack
            //
            this.menuItemBack.Text   = Resources.WebBrowser_menuItemBack_Text;
            this.menuItemBack.Click += new System.EventHandler(menuItemBack_Click);

            //
            // menuItemToFriends
            //
            this.menuItemToFriends.Text   = Resources.WebBrowser_menuItemToApp_Text;
            this.menuItemToFriends.Click += new System.EventHandler(menuItemToApp_Click);

            //
            // SettingView
            //
            this.Size = new Size(240, 268);
            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
            this.AutoScaleMode       = System.Windows.Forms.AutoScaleMode.Dpi;
            this.BackColor           = Color.White;
            this.AutoScroll          = true;

            this.Controls.Add(webBrowser);

            this.Canvas.RecalcDPIScaling();
            this.ResumeLayout(false);
        }
예제 #14
0
        void RemoveForbiddenElements(WebBrowserEx wb)
        {
            //NOTE: Right now we will enable all plugins to run
            //if (wb.Document != null)
            //{
            //    List<string> tagNames = new List<string>();
            //    StringBuilder sb = new StringBuilder();
            //    foreach (dynamic elm in wb.Document.All)
            //    {

            //        if (!tagNames.Contains((dynamic)elm.TagName))
            //        {
            //            tagNames.Add((dynamic)elm.TagName);
            //        }
            //        if ((dynamic)elm.TagName.ToLower() == "embed")
            //        {
            //            //NOTE: elm.GetAttribute doesn't return value for "type", it only works for src!?!?!?!?!
            //            //then there is always workaround
            //            elm.Enabled = false;
            //            if (elm.OuterHtml.ToLower().Contains("application/x-shockwave-flash"))
            //            {
            //                //elm.OuterHtml = elm.OuterHtml.Replace("application/x-shockwave-flash", "");
            //                //HTMLDocumentClass htmldoc = wbCtrl.Document.DomDocument as HTMLDocumentClass;
            //                //IHTMLDOMNode node = htmldoc.getElementById("xBar") as IHTMLDOMNode;
            //                //node.parentNode.removeChild(node);
            //                dynamic parentNode = elm.DomElement.parentNode;
            //                parentNode.removeChild(elm.DomElement);


            //                //dynamic elem = wb.Document.CreateElement("P");

            //                //elem.InnerText = "PLUGIN REMOVED BY SECURE BROWSER";

            //                // parentNode.appendChild(elem);

            //            }
            //            if (elm.GetAttribute("type") == "application/x-shockwave-flash")
            //            {
            //                sb.Append(elm.InnerHtml);
            //            }
            //        }
            //    }

            //    Debug.WriteLine(sb.ToString());

            //}
        }
예제 #15
0
        private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowserEx webBrowser = sender as WebBrowserEx;

            if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
            {
                if (e.Url.AbsolutePath != webBrowser.Url.AbsolutePath)
                {
                    return;
                }

                if (DocumentComplete != null)
                {
                    DocumentComplete(webBrowser);
                }
            }
        }
예제 #16
0
        private void RenderImage(string url)
        {
            try
            {
                using (WebBrowserEx wb = new WebBrowserEx())
                {
                    wb.DocumentCompleted += Browser_DocumentCompletedSingle;
                    wb.ProgressChanged   += Wb_ProgressChanged;
                    wb.ScrollBarsEnabled  = false;
                    wb.Navigate(url);
                    wb.Refresh(WebBrowserRefreshOption.Completely);

                    while (wb.IsBusy)
                    {
                        Application.DoEvents();
                    }
                    for (int i = 0; i < AMOUNTOFITERATIONS; i++)
                    {
                        if (wb.ReadyState != WebBrowserReadyState.Complete)
                        {
                            Application.DoEvents();
                            Thread.Sleep(SLEEPTIME);
                        }
                        else
                        {
                            break;
                        }
                    }

                    Thread.Sleep(SLEEPTIME * 50); //To make sure websites are properly rendered
                    Application.DoEvents();
                    endOfRender = true;
                    Browser_DocumentCompletedSingle(wb, new WebBrowserDocumentCompletedEventArgs(wb.Url));
                }
            }
            catch
            {
                if (error == "")
                {
                    error = "Something went wrong.\r\n\r\nCheck if you have a working internet connection. In case that does not help, restart the application and try again.";
                }
                MessageBox.Show(error, APPTITLE, MessageBoxButtons.OK, MessageBoxIcon.Information);
                error = "";
            }
        }
예제 #17
0
    public static void Main()
    {
        var frm = new Form();

        frm.Size = new Size(800, 600);
        var ie = new WebBrowserEx();

        ie.ScriptErrorsSuppressed = false;

        frm.Load += (s, e) => {
            var path = Path.GetFullPath("index.html");
            ie.Navigate(path);
        };

        ie.Dock = DockStyle.Fill;
        frm.Controls.Add(ie);
        frm.ShowDialog();
    }
예제 #18
0
 private void InitHtmlRenderHost(out WindowsFormsHostEx host, WebBrowserEx browser, Panel panel)
 {
     host = new WindowsFormsHostEx()
     {
         //IsRedirected = true,
         //CompositionMode = ,
         AllowDrop           = false,
         Background          = new SolidColorBrush(Colors.Transparent),
         MinHeight           = 24,
         HorizontalAlignment = HorizontalAlignment.Stretch,
         VerticalAlignment   = VerticalAlignment.Stretch,
         Child = browser
     };
     if (panel is Panel)
     {
         panel.Children.Add(host);
     }
 }
        public AutomationManagement()
        {
            this.storage = new TaskStorage();
            this.factory = new BrowserFactory(this);

            this.webBrowser                    = new WebBrowserEx();
            this.webBrowser.NewWindow3        += webBrowser_NewWindow3;
            this.webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;

            timer          = new WebBrowserTimer(this.webBrowser);
            timer.Tick    += timer_Tick;
            timer.Interval = 10;
            timer.Enabled  = false;

            this.backgroundWorker = new BackgroundWorker();
            this.backgroundWorker.WorkerSupportsCancellation = true;
            this.backgroundWorker.DoWork             += backgroundWorker_DoWork;
            this.backgroundWorker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted;
        }
예제 #20
0
        void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowserEx webBrowser = sender as WebBrowserEx;

            if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
            {
                if (e.Url.AbsolutePath != webBrowser.Url.AbsolutePath)
                {
                    return;
                }

                if (webBrowser.Url.AbsolutePath.Contains("distributor"))
                {
                    webBrowser.DocumentCompleted -= webBrowser_DocumentCompleted;
                    DockContext.Current.Show(typeof(DistributionFrm));
                    //this.Close();
                }
            }
        }
예제 #21
0
        private async void ExecuteNext(WebBrowserEx web, ToolStripLabel label)
        {
            if ((label.ForeColor == Color.Green || label.ForeColor == Color.Blue || label.ForeColor == Color.Red) && autoQueryTxt.Text == "1")
            {
                if (web.HueQuery == null || web.HueQuery.Success)
                {
                    web.HueQuery = queryList.FirstOrDefault(x => x.Initial == true);
                    if (web.HueQuery == null)
                    {
                        return;
                    }
                    web.HueQuery.Initial   = false;
                    web.HueQuery.BrowserNr = web.Id;
                }

                if (label.ForeColor == Color.Green && !web.HueQuery.Success && web.HueQuery.RetryCounter > 0)
                {
                    web.HueQuery.Success = true;
                    web.Document.InvokeScript("eval", new object[] { "codeMirror.setValue('success');" });
                    web.HueQuery = null;
                    return;
                }

                if (web.HueQuery.RetryCounter >= 30)
                {
                    web.HueQuery.Success = false;
                    web.Document.InvokeScript("eval", new object[] { "codeMirror.setValue('failed');" });
                    web.HueQuery = null;
                    return;
                }

                if (label.ForeColor == Color.Red)
                {
                    await Task.Delay(1000);
                }
                string funcFillSql = "codeMirror.setValue('" + web.HueQuery.Sql + "');";
                web.Document.InvokeScript("eval", new object[] { funcFillSql });
                await Task.Delay(1000);

                web.Document.InvokeScript("eval", new object[] { "tryExecuteQuery();" });
                web.HueQuery.RetryCounter++;
            }
        }
예제 #22
0
        private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowserEx webBrowser = sender as WebBrowserEx;

            if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
            {
                if (e.Url.AbsolutePath != webBrowser.Url.AbsolutePath)
                {
                    return;
                }

                if (webBrowser.Url.AbsolutePath.Contains("distributor"))
                {
                    string html = Init(webBrowser);

                    // next page
                    if (html.IndexOf("class=\"page-next\"") != -1)
                    {
                        WebBrowserManager m = new WebBrowserManager(this.webBrowser);
                        var pageContainer   = m.FindID("dpl:pagination");
                        if (pageContainer != null)
                        {
                            pageContainer = m.FindClassName("page-next", pageContainer);
                        }
                        if (pageContainer != null)
                        {
                            m.ClickHelemnt(pageContainer);
                        }

                        this.TabText = "商品分销管理(加载中 ... ...)";
                    }
                    else
                    {
                        webBrowser.DocumentCompleted -= webBrowser_DocumentCompleted;
                        this.TabText = "商品分销管理(加载完成)";

                        ThreadRunner.Run(new Action(SearchNewTitle));
                    }
                }
            }
        }
예제 #23
0
        private string Init(WebBrowserEx webBrowser)
        {
            Stream stream = webBrowser.DocumentStream;

            stream.Position = 0;
            byte[] buffer = new byte[stream.Length];

            stream.Read(buffer, 0, buffer.Length);

            string documentHtml     = Context.HttpEncoding.GetString(buffer);
            List <FenXiaoModel> tmp = ConvertOfflineProduct(documentHtml);

            if (tmp != null && tmp.Count > 0)
            {
                BindFenXiaoListView(tmp);

                this.allProductList.AddRange(tmp);
            }

            return(documentHtml);
        }
예제 #24
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="browser">lien sur le <see cref="WebBrowserEx"/></param>
 public WebBrowserExSink( WebBrowserEx browser ) { 
   this.browser = browser; 
 }
예제 #25
0
                                                                          // <wao never.begin>
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="automationObject">objet automation prenant en charge la navigation</param>
 /// <param name="url">url cible de la navigation</param>
 /// <param name="urlContext">url du contexte depuis lequel la navigation est déclenchée</param>
 /// <param name="flags">flags précisant la source et le contexte de l'opération</param>
 public NewWindowExEventArgs( object automationObject = null, string url = "", string urlContext = "", WebBrowserEx.NWMF flags = WebBrowserEx.NWMF.NWMF_NONE ) {
   AutomationObject = automationObject;
   Url = url;
   UrlContext = urlContext;
   Flags = flags;
 }
 /// <summary>
 /// Default constructor.
 /// </summary>
 public WebBrowserSiteEx(WebBrowserEx webBrowser) : base(webBrowser)
 {
 }
예제 #27
0
        public GalleryBrowserView(GalleryBrowserFilter galleryBrowserFilter, GalleryModel galleryModel, DocumentTemplate <ISearchProgressArg> searchCovergridTemplate, DocumentTemplate <ISearchArg> searchPreloadTemplate, IPathFormatter pathFormatter
                                  , Configuration.ConfigGalleryBrowserView galleryBrowserSettings
                                  , PageDownloader pageDownloader
                                  , CoverDownloader coverDownloader
                                  , MetadataKeywordLists metadataKeywordLists
                                  , TagsModel tagsModel
                                  , SearchHandler searchHandler)
        {
            InitializeComponent();

            GalleryBrowserFilter    = galleryBrowserFilter;
            GalleryModel            = galleryModel;
            PathFormatter           = pathFormatter;
            SearchCovergridTemplate = searchCovergridTemplate;
            SearchPreloadTemplate   = searchPreloadTemplate;
            GalleryBrowserSettings  = galleryBrowserSettings;
            PageDownloader          = pageDownloader;
            CoverDownloader         = coverDownloader;
            MetadataKeywordLists    = metadataKeywordLists;
            TagsModel     = tagsModel;
            SearchHandler = searchHandler;

            webBrowser           = new WebBrowserEx();
            listBackgroundWorker = new BackgroundWorker();

            SuspendLayout();

            webBrowser.AllowWebBrowserDrop = false;
            webBrowser.Dock = DockStyle.Fill;
            webBrowser.Name = "galleryWebBrowser";
            webBrowser.BeforeDocumentCompleted += WebBrowser_BeforeDocumentCompleted;
            webBrowser.DocumentCompleted       += WebBrowser_DocumentCompleted;

            listBackgroundWorker.WorkerReportsProgress      = true;
            listBackgroundWorker.WorkerSupportsCancellation = true;

            listBackgroundWorker.DoWork             += ListBackgroundWorker_DoWork;
            listBackgroundWorker.ProgressChanged    += ListBackgroundWorker_ProgressChanged;
            listBackgroundWorker.RunWorkerCompleted += ListBackgroundWorker_RunWorkerCompleted;

            PageDownloader.PageDownloadReportProgress += PageDownloader_PageDownloadReportProgress;
            PageDownloader.PagesDownloadStarted       += PageDownloader_PagesDownloadStarted;
            PageDownloader.PagesDownloadCancelled     += PageDownloader_PagesDownloadCancelled;
            PageDownloader.PagesDownloadCompleted     += PageDownloader_PagesDownloadCompleted;

            CoverDownloader.CoverDownloadReportProgress += CoverDownloader_CoverDownloadReportProgress;
            CoverDownloader.CoversDownloadStarted       += CoverDownloader_CoversDownloadStarted;
            CoverDownloader.CoversDownloadCancelled     += CoverDownloader_CoversDownloadCancelled;
            CoverDownloader.CoversDownloadCompleted     += CoverDownloader_CoversDownloadCompleted;

            MetadataKeywordLists.WhitelistChanged  += Form_WhiteListChanged;
            MetadataKeywordLists.BlacklistChanged  += Form_BlackListChanged;
            MetadataKeywordLists.IgnorelistChanged += Form_IgnoreListChanged;
            MetadataKeywordLists.HidelistChanged   += Form_HideListChanged;

            GalleryModel.SearchArgChanged         += GalleryModel_SearchArgChanged;
            GalleryModel.SearchProgressArgChanged += GalleryModel_SearchProgressArgChanged;

            galleryBrowserFilter.TextChanged += GalleryBrowserFilter_TextChanged;

            Controls.Add(webBrowser);

            ResumeLayout(false);
        }
예제 #28
0
 public WebBrowser2EventHelper(WebBrowserEx parent)
 {
     this.parent = parent;
 }
예제 #29
0
 public WebBrowserManager()
 {
     this.webBrowser = new WebBrowserEx();
     this.webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
 }
예제 #30
0
 public WebBrowserManager(WebBrowserEx webBrowser)
 {
     this.webBrowser = webBrowser;
     this.webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
 }
예제 #31
0
 public CommonTask(AutomationManagement manager)
 {
     this.webBrowser = (WebBrowserEx)manager.Browser;
     this.manager    = manager;
 }
예제 #32
0
        /// <summary>
        /// 初始化浏览器
        /// </summary>
        private void InitializeWebBrowser()
        {
            browser = new WebBrowserEx()
            {
                Dock = DockStyle.Fill
            };
            this.Controls.Add(browser);
            BindBrowserContextMenu();

            bool isBrowserInited = false;

            browser.DocumentCompleted += (s, e) =>
            {
                if (!isBrowserInited && browser.ReadyState == WebBrowserReadyState.Complete)
                {
                    isBrowserInited = true;

                    foreach (object item in notReadyScriptList)
                    {
                        if (item is string)
                        {
                            SendMessage(item as string);
                        }
                        else if (item is Alias.Message)
                        {
                            DropMessage(item as Alias.Message);
                        }
                        else if (item is object[])
                        {
                            object[] arr = item as object[];
                            AddFileToSendList((bool)arr[0], arr[1] as string, (ulong)arr[2]);
                        }
                        else if (item is KeyValuePair <int, FileTaskEventArgs> )
                        {
                            KeyValuePair <int, FileTaskEventArgs> ea = (KeyValuePair <int, FileTaskEventArgs>)item;
                            switch (ea.Key)
                            {
                            case 0: AddSendTask(ea.Value); break;                                               //0-添加发送任务

                            case 1: AddReceiveTask(ea.Value); break;                                            //1-添加接收任务

                            case 2: TaskItemProgressChange(ea.Value); break;                                    //2-任务进度变化

                            case 3: TaskItemStateChange(ea.Value); break;                                       //3-任务状态变化

                            case 4: SendTaskFinish(ea.Value); break;                                            //4-发送任务完成

                            case 5: SendTaskStart(ea.Value); break;                                             //5-发送任务开始

                            case 6: SendTaskExpires(ea.Value); break;                                           //6-发送任务过期

                            case 7: ReceiveTaskFinish(ea.Value); break;                                         //7-接收任务完成

                            case 8: ReceiveTaskStart(ea.Value); break;                                          //8-接收任务开始
                            }
                        }
                        else if (item is FileSystemOperationErrorEventArgs)
                        {
                            FileOperationError(item as FileSystemOperationErrorEventArgs);
                        }
                        else if (item is FileTaskInfo)
                        {
                            ReceiveFileRequired(item as FileTaskInfo);
                        }
                    }
                }
            };
            browser.DragFile += (s, e) => Array.ForEach(e.Files, AddFileToSendList);

            //初始化浏览器
            browser.Navigate(String.Format(@"{0}Chat\IEView\main.html", Core.ProfileManager.GetThemeFolder()));
            browser.ObjectForScripting = this;

            //浏览器拖放文件
            //browser.AllowNavigation = false;	//禁止浏览
            browser.WebBrowserShortcutsEnabled = false;                 //禁止快捷键
            browser.EnableFileDrag             = true;

            //browser.ScriptErrorsSuppressed = true;	//禁止错误?
        }