在CSDN上看到了這個例子,覺得蠻好玩的,於是拿來改了一下。
這個例子有點像“三人行採集器”中的多使用者自動登入功能或者是像許多瀏覽器中自動填表(填充帳號、密碼)功能。
即不通過瀏覽網頁,直接由用戶端程式來執行一些頁面上的操作(如點擊登入按鈕,登入系統等)。
登入部落格園:
1 private void wbCnblog_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
2 {
3 wbCnblog.ScriptErrorsSuppressed = true;
4
5 if ((e.Url.ToString().ToLower().Equals("http://passport.cnblogs.com/login.aspx"))) //部落格園登陸頁面
6 {
7 HtmlElement textboxUserId = this.wbCnblog.Document.GetElementById("tbUserName");
8 //如果沒有ID,用 Name 擷取
9 //HtmlElement textboxUserId = this.webBrowser1.Document.All["登入使用者名稱文字框的Name"];
10
11 HtmlElement textboxPassword = this.wbCnblog.Document.GetElementById("tbPassword");
12 //如果沒有ID, 用Name 擷取
13 //HtmlElement textboxPassword = this.webBrowser1.Document.All["登入密碼框的Name"];
14
15 HtmlElement buttonSubmit = this.wbCnblog.Document.GetElementById("btnLogin");
16 //如果沒有ID, 用Name擷取
17 //HtmlElement buttonSubmit = this.webBrowser1.Document.All["登入按鈕的Name"];
18
19 for (int i = this.listView_usr.SelectedItems.Count - 1; i >= 0; i--)
20 {
21 ListViewItem item = this.listView_usr.SelectedItems[i];
22 //this.listView_usr.Items.Remove(item);
23 string strUsr = item.SubItems[0].Text;
24 string strPwd = item.SubItems[1].Text;
25 textboxUserId.InnerText = strUsr; //填寫帳號
26 textboxPassword.InnerText = strPwd; //填寫密碼
27 }
28
29
30 buttonSubmit.InvokeMember("click"); //觸發提交按鈕的點擊事件登入部落格園
31 }
32 }
登出部落格園:
1 private void webBrowserQuit()
2 {
3 if (null == wbCnblog.Document)
4 {
5 return;
6 }
7
8 wbCnblog.Document.Cookie = "";
9
10 HtmlElementCollection links = wbCnblog.Document.Links;
11 if (null == links)
12 {
13 return;
14 }
15
16 foreach (HtmlElement link in links)
17 {
18 if (null == link.InnerText)
19 {
20 continue;
21 }
22
23 if (link.InnerText.Equals("退出"))
24 {
25 link.InvokeMember("click"); //激發連結的點擊事件
26 break;
27 }
28 }
29 }
代碼: cnblogLogin.rar
剛才粗心大意,發圖的時候竟然將自己密碼給暴露出來了,無奈只能重新修改密碼了