|
when i use webbrowser control to navigate site above 4 times(with DocumentCompleted event). it would throwa unhandled access violation exception , and interrupt my program.
private void btnStart_Click(object sender, EventArgs e) { btnStart.Enabled = false; try { LoadList(); if (listData.Count == 0 || listPwd.Count == 0) return; wdWork = listData[0]; webBrowser.Navigate("http://xxxxxxx.com"); } catch (Exception ex) { SingletonProvider<CLog>.Instance.Add(ex.Message, "StartWorking", "Error"); } }
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { try { WebBrowser webBrowser = (WebBrowser)sender; if (webBrowser.Url.ToString() != "http://xxxxxxx.com") { if (webBrowser.Url.ToString().Contains("http://xxxxxxx.com/error.asp")) { wdWork.AddStatus(); NextProcess(); } return; } //Do something.
if (false == (bool)webBrowser.Document.InvokeScript("Submit_onclick")) NextProcess(); } catch (Exception ex) { NextProcess(); } }
private void NextProcess() { int wdIndex = wdWork.Index + 1; if (wdIndex >= listData.Count) { wdIndex = 0; } while (listData[wdIndex].GetStatus() >= listPwd.Count - 1) { wdIndex++; if (wdIndex >= listData.Count) wdIndex = 0; if (wdIndex == wdWork.Index) return; } wdWork.Password = listPwd[wdWork.GetStatus() + 1]; wdWork = listData[wdIndex]; webBrowser.Navigate("http://xxxxxxx.com"); }
|