private void Browser_AuthenticationPrompt(WebBrowser2 sender, WebBrowser2.AuthenticationPromptEventArgs e) { try { Program.AssertOnEventThread(); log.Debug("Prompting for authentication..."); CompleteClearSecret(lastBrowserState); CompleteGetSecret(lastBrowserState); BrowserState.BrowserCredentials creds = lastBrowserState.Credentials; if (creds != null && creds.Valid) { e.Username = creds.Username; e.Password = creds.Password; e.Success = true; log.Debug("Prompt for authentication successful."); } else { e.Success = false; log.Debug("Prompt for authentication cancelled / failed."); } } catch (Exception exn) { log.Error("Prompt for authentication failed", exn); e.Success = false; } }
private void InnerInstallScript(HtmlDocument document) { WebBrowser2.InstallJQuery(document.DomDocument as IHTMLDocument); string code = this.GetJSCode(); WebBrowser2.AttachScript(document.DomDocument as IHTMLDocument, code); }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (webBrowser1 != null) { webBrowser1.Navigated -= WebBrowser_Navigated; webBrowser1.NewWindow3 -= WebBrowser_NewWindow3; webBrowser1.DocumentCompleted -= WebBrowser_DocumentCompleted; if (isModalDialog) { this.DialogResult = WebBrowser2.InvokeScript(webBrowser1.Document.DomDocument as IHTMLDocument, "getDialogResult"); } } if (disposing) { if (webBrowser1 != null) { webBrowser1.Dispose(); if (_fillManager != null) { _fillManager.DetachWebBrowser(webBrowser1); } } if (components != null) { components.Dispose(); } } base.Dispose(disposing); _fillManager = null; webBrowser1 = null; }
private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser2 wbObj = sender as WebBrowser2; HtmlDocument _document = wbObj.Document; string strTitle = ""; HtmlElement enlst = _document.GetElementById("emblog_list"); HtmlElementCollection divs = enlst.GetElementsByTagName("div"); HtmlElement emLi; foreach (HtmlElement em in divs) { if (em.GetAttribute("className") == "list") { emLi = em.GetElementsByTagName("li")[0]; HtmlElementCollection links = emLi.GetElementsByTagName("a"); strUrl = links[0].GetAttribute("href"); wb2.Navigate(strUrl); break; } } }
public BHFiller(WebBrowser2 browser, Uri currentUri, BHUrlParameter urlParameter) : base(browser, currentUri) { _parameters = new List <KeyValuePair <FillParameterKey, object> >(); _urlParameter = urlParameter; formIndexes = new Dictionary <string, int>(); }
private void wb2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { this.Text = "100"; WebBrowser2 wbObj = sender as WebBrowser2; HtmlDocument _document = wbObj.Document; string strTitle = ""; HtmlElementCollection divs = _document.Body.GetElementsByTagName("div"); HtmlElement emBody = _document.GetElementById("articleBody"); foreach (HtmlElement em in divs) { if (em.GetAttribute("className") == "articleTitle") { strTitle = em.InnerText; break; } } txtBody.Text = strTitle + "\n" + emBody.InnerText; TimerCallback timerDelegate = new TimerCallback(reload); System.Threading.Timer timer = new System.Threading.Timer(timerDelegate); timer.Change(1000, 0); }
public COCFillManager(WebBrowser2 browser, string dataFile, string ruleFilePath) : base(browser, dataFile, ruleFilePath) { base.FillType = "COC"; base.Version = Properties.Resources.FillRule; _asyncObject = new FillAsyncHandler(); }
private FillManagerBase GetFillManager(string dataFile, WebBrowser2 browser) { FillManagerBase manager = null; if (ribbon.SelectedPage == ghsite) { manager = new GHFillManager(browser, dataFile); } else if (ribbon.SelectedPage == fdlsite) { manager = new FDLFillManager(browser, dataFile); } else if (ribbon.SelectedPage == bhsite) { manager = new BHFillManager(browser, dataFile); } else if (ribbon.SelectedPage == xnysite) { manager = new XNYFillManager(browser, dataFile); } else if (ribbon.SelectedPage == cocsite) { manager = new COCFillManager(browser, dataFile); } else if (ribbon.SelectedPage == pzhsite) { manager = new PZHFillManager(browser, dataFile); } else if (ribbon.SelectedPage == cccsite) { if (cccProcess == null) { this.Start3CProcess(); if (cccProcess == null) { return(null); } while (cccProcess.MainWindowHandle == IntPtr.Zero) { Application.DoEvents(); } } manager = new CCCFillManager((uint)cccProcess.Id, dataFile); } // 为填报器指定数据提供程序。 if (manager != null) { string entripise = FileHelper.GetEntName(); manager.DataProvider = DataProviders.DataProviderFactory.CreateProvider(entripise, GetSelectedPageType()); manager.DataProvider.DataSourceFile = dataFile; if (manager.DataProvider.AllowAlternately) { bool result = manager.DataProvider.ShowWindow(); return(result ? manager : null); } } return(manager); }
/// <summary> /// 监听WebBrowser的Navigating、DocumentCompleted、NewWindow3、Disposed事件。 /// </summary> /// <param name="browser"></param> public void AttachWebBrowser(WebBrowser2 browser) { _openedBrowser.Add(browser); browser.Navigating += Browser_Navigating; browser.DocumentCompleted += Browser_DocumentCompleted; browser.NewWindow3 += Browser_NewWindow3; browser.Disposed += Browser_Disposed; }
public COCFillManager(WebBrowser2 browser, string dataFile) : base(browser, dataFile, FileHelper.GetFillVersionByName(WebBrowserUtils.Properties.Resources.FillRule)) { base.FillType = "COC"; base.Version = Properties.Resources.FillRule; _asyncObject = new FillAsyncHandler(); _fillThread = new System.Threading.Thread(InnerBeginFill); }
private void FillTableValue(Hashtable data) { if (data == null) { base.Browser.Invoke((Action)(() => { WebBrowser2.InvokeScript(base.Document.DomDocument as IHTMLDocument, "goBack"); })); return; } int count = 0; List <string> valueList = null; List <KeyValuePair <FillParameterKey, object> > fillList = new List <KeyValuePair <FillParameterKey, object> >(); int fillIndex = 0, rowIndex = 0; foreach (DictionaryEntry entry in data) { rowIndex = 0; DataTable table = entry.Value as DataTable; bool canAdd; while (table.Rows.Count > rowIndex) { formIndexes.Clear(); valueList = GetValueList(table, fillList, out fillIndex, ref rowIndex, out canAdd); for (int i = 0; i < fillIndex; i++) { if (_parameters[i].Key.Type == Matcher.TYPE_FORM) { FillParameter parameter = _parameters[i].Value as FillParameter; if (parameter != null) { string key = parameter.FrameId; if (string.IsNullOrEmpty(key)) { key = "@"; } if (formIndexes.ContainsKey(key)) { formIndexes[key] = formIndexes[key] + 1; } else { formIndexes[key] = 0; } } } } FillListElement(fillList, valueList, canAdd); count = Math.Max(count, fillIndex); fillList.Clear(); } } for (int index = count; index < _parameters.Count; index++) { this.FillElement(_parameters[index].Key, _parameters[index].Value, null); } }
protected override void OnBrowserNavigating(WebBrowser2 browser, WebBrowserNavigatingEventArgs e) { base.OnBrowserNavigating(browser, e); if (e.Url.AbsolutePath == "/cocComplete!saveCocComplete.action") { base.EndFill(); _asyncObject.Resume(); } }
protected FillBase(WebBrowser2 browser, Uri currentUri) { _browser = browser; _currentUri = currentUri; _asyncObject = new FillAsyncHandler(); _fillThread = new Thread(FillWorker); _state = Fillers.FillState.New; _browser.ScriptErrorsSuppressed = true; }
public ScriptingObject(WebBrowser2 Browser, IXenObject XenObject) { browser = Browser; connection = XenObject.Connection; if (connection != null) { connection.ConnectionResult += connection_ConnectionResult; } SetObject(XenObject); }
/// <summary> /// 停止监听指定WebBrowser的事件。 /// </summary> /// <param name="browser"></param> public void DetachWebBrowser(WebBrowser2 browser) { if (browser != null) { browser.Navigating -= Browser_Navigating; browser.DocumentCompleted -= Browser_DocumentCompleted; browser.NewWindow3 -= Browser_NewWindow3; browser.Disposed -= Browser_Disposed; } }
public ScriptingObject(WebBrowser2 Browser, IXenObject XenObject) { browser = Browser; connection = XenObject.Connection; if (connection != null) { connection.ConnectionResult += new EventHandler <ConnectionResultEventArgs>(connection_ConnectionResult); } SetObject(XenObject); }
private void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser2 browser = sender as WebBrowser2; // 查询当前Url是否已有填报线程。 FillBase findFill = GetFiller(e.Url); if (findFill == null) { if (CanFill(e.Url)) { //若当前Url可填报且线程尚未创建,则创建一个新线程。 FillBase fill = CreateFillInner(e.Url, browser); if (fill != null) { _currentFill = fill; } } else { OnDocumentCompleted(browser, e); return; } } else { // 若当前填报线程已结束,则创建一个新的线程执行填报。 if (findFill.FillState == FillState.End || findFill.FillState == FillState.Exception || findFill.FillState == FillState.Abort) { findFill.Dispose(); findFill = CreateFillInner(e.Url, browser); } _currentFill = findFill; } if (browser.IsBusy == false && _currentFill != null && _currentFill.Browser == browser && !browser.IsDisposed) { _currentFill.FillIndexes = _fillIndexes; if (_currentFill.FillState == FillState.Suspended || _currentFill.FillState == FillState.Waiting || _currentFill.FillState == FillState.Running) { if (CanFill(e.Url)) { _currentFill.UpdateDocument(e.Url); } else { _currentFill.UpdateDocument(); } _currentFill.Resume(); } else if (_currentFill.FillState == FillState.New) { _currentFill.BeginFill(); } } OnDocumentCompleted(browser, e); }
/// <summary> /// /// </summary> /// <param name="browser">主页面浏览器。</param> /// <param name="dataFile">存储数据的文件位置。</param> /// <param name="ruleFilePath">规则文件的存储路径。</param> internal WebFillManager(WebBrowser2 browser, string dataFile, string ruleFilePath) : base(dataFile, ruleFilePath) { _fillTable = new Hashtable(); _uris = new Hashtable(); _browser = browser; _fillIndexes = new List <FillBase>(); _openedBrowser = new List <WebBrowser2>(); _records = new List <FillRecord>(); _records.Add(new FillRecord(ElementType.Text, RecordType.Success)); _records.Add(new FillRecord(ElementType.Select, RecordType.Success)); _records.Add(new FillRecord(ElementType.Radio, RecordType.Success)); _records.Add(new FillRecord(ElementType.CheckBox, RecordType.Success)); _records.Add(new FillRecord(ElementType.File, RecordType.Success)); }
private void CreateBrowser() { Browser = new WebBrowser2(); Browser.Dock = DockStyle.Fill; Browser.IsWebBrowserContextMenuEnabled = ContextEnabled; Browser.DocumentCompleted += Browser_DocumentCompleted; Browser.Navigating += Browser_Navigating; Browser.Navigated += Browser_Navigated; Browser.NavigateError += Browser_NavigateError; Browser.WindowClosed += Browser_WindowClosed; Browser.PreviewKeyDown += Browser_PreviewKeyDown; Browser.AuthenticationPrompt += Browser_AuthenticationPrompt; // Navigate to about:blank to work around http://support.microsoft.com/kb/320153. Browser.Navigate("about:blank"); }
public PrivateDetector(WebBrowser2 browser, string fileName, IList attrStringList) : base(browser) { string tempPath = System.IO.Path.GetTempPath(); _fileName = fileName; _fullName = string.Format("{0}\\{1}", tempPath, fileName); FileInfo info = new FileInfo(_fullName); if (info.Directory.Exists == false) { info.Directory.Create(); } _excelColumnHeader = attrStringList; _writer = new Office.Excel.ForwardExcelWriter(_fullName); _writer.Open(); }
public new void SetUp() { _wb = new WebBrowser2(); MW(() => _wb.Handle); _testUris.Clear(); for (int i = 0; i < 2; i++) { string file = Path.GetTempFileName(); File.Move(file, file + ".html"); file += ".html"; File.WriteAllText(file, "<html><body>hello</body></html>"); _testUris.Add(new Uri("file://" + file)); } }
private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser2 browser = sender as WebBrowser2; MainRibbonForm form = this.FindForm() as MainRibbonForm; if (form != null) { if (e.Url.ToString() == Constants.APPLY_TEMPORARY_SEQUENCE_NUMBER_PAGE) { form.simpleButton1.Visible = true; } else { form.simpleButton1.Visible = false; } } }
protected override void Dispose(bool disposing) { base.Dispose(disposing); BrowserStates.Clear(); if (Browser != null) { Browser.Dispose(); Browser = null; } if (_tabPage != null) { _tabPage.Dispose(); _tabPage = null; } }
private void WebBrowser_Navigated(object sender, System.Windows.Forms.WebBrowserNavigatedEventArgs e) { WebBrowser2 browser = sender as WebBrowser2; browser.ObjectForScripting = new WebPageCloseHandler(browser.Parent as TabPageWithWebBrowser); HtmlDocument doc = FindDocument(browser.Document, e.Url); if (doc != null) { WebBrowser2.AttachScript(doc.DomDocument as IHTMLDocument, AttachScript, HtmlElementInsertionOrientation.AfterBegin); if (opener != null) { browser.Document.Cookie = opener.document.cookie; browser.Document.InvokeScript("setOpener", new object[] { opener }); } } this.Text = string.IsNullOrEmpty(browser.Document.Title) ? "未命名" : browser.Document.Title; }
private void wb2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser2 wbObj = sender as WebBrowser2; HtmlDocument _document = wbObj.Document; string strTitle = ""; HtmlElementCollection divs = _document.Body.GetElementsByTagName("div"); HtmlElement emBody = _document.GetElementById("articleBody"); foreach (HtmlElement em in divs) { if (em.GetAttribute("className") == "articleTitle") { strTitle = em.InnerText; break; } } txtBody.Text = strTitle + "\n" + emBody.InnerText; }
protected virtual void OnDocumentCompleted(WebBrowser2 browser, WebBrowserDocumentCompletedEventArgs e) { string uri = e.Url.AbsolutePath; Uri url = null; try { url = new Uri(this.JumpWhenPage); if (url.AbsolutePath == uri) { browser.Navigate(this.StartPageUri); } } catch { this.EndFill(); WebFillManager.ShowMessageBox(string.Format("填报类型{0}的StartFillPageUri的url地址不正确!", base.FillType), "错误", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } }
private void Browser_Disposed(object sender, EventArgs e) { WebBrowser2 browser = sender as WebBrowser2; if (browser != null) { DetachWebBrowser(browser); // 浏览器被关闭时停止监听其事件,并继续主WebBrowser中的填报线程。 } _currentFill = null; _openedBrowser.Remove(browser); HtmlDocument doc = FindFillDocument(_openedBrowser[_openedBrowser.Count - 1].Document); if (doc != null) { FillBase findFill = GetFiller(doc.Url); if (findFill != null) { _currentFill = findFill; } } this.OnBrowserDisposed(browser); }
protected FillBase CreateFillInner(Uri url, WebBrowser2 browser) { string uri = url.AbsolutePath; if (string.IsNullOrEmpty(uri)) { return(null); } UrlParameter parameter = _uris[uri] as UrlParameter; string key = parameter == null ? null : parameter.LabelName; if (key == null) { return(null); } FillBase fill = CreateFill(url, browser); if (fill != null) { if (_fillTable.Contains(key)) { _fillTable[key] = fill; } else { _fillTable.Add(key, fill); } fill.DataTable = _data; fill.RulePath = RuleFilePath; fill.FillVersion = this.Version; fill.FillRecords = this._records; fill.DataProvider = this.DataProvider; fill.FillStateChanged += new EventHandler(OnFillStateChanged); } return(fill); }
private void CrearPestaña() { Estado.Text = "New Tab"; TabPage newtab = new TabPage("Nueva Pestaña "); ContarPestaña++; //variable que lleva el control de la cantidad de pestaña creada ListaPestaña.Add(newtab); Navegador1.SelectedTab = newtab; //seleccionamos la pestaña Navegador1.TabPages.Add(newtab); //cargamos la pestaña en el control //Se crea objeto browser WebBrowser2 wb = new WebBrowser2(); newtab.Controls.Add(wb); wb.Dock = DockStyle.Fill; wb.ScriptErrorsSuppressed = false; wb.NavigateError += new WebBrowserNavigateErrorEventHandler(wb_NavigateError);//Control de errores wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_completa);// ebento que se ejequta al terminar de cargar la pagina wb.Navigate(Home); }
public BrowserState(List <Uri> uris, IXenObject obj, WebBrowser2 browser) { Uris = new List <Uri>(uris); Obj = obj; ObjectForScripting = obj == null ? null : new ScriptingObject(browser, obj); }
private void btnHelp_Click(object sender, RoutedEventArgs e) { WebBrowser2 wb = new WebBrowser2(new Uri(System.IO.Path.GetFullPath(@".\MySci User Documentation.htm#_Universal_Law_of"))); UndockedModule ud = new UndockedModule(wb, "Help", 0); ud.Show(); }
public PZHFiller(WebBrowser2 browser, Uri currentUri, UrlParameter urlParameter) : base(browser, currentUri) { _parameters = new List <KeyValuePair <FillParameterKey, object> >(); _urlParameter = urlParameter; }
public WebBrowser2EventHelper(WebBrowser2 parent) { this.parent = parent; }