自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

VB.NET表單自動(dòng)提交實(shí)現(xiàn)方案剖析

開(kāi)發(fā) 后端
如何才能完成郵件自動(dòng)注冊(cè)這一功能呢?處理對(duì)相關(guān)代理服務(wù)器的修改之外還需要些什么呢?有經(jīng)驗(yàn)的朋友當(dāng)然會(huì)第一時(shí)間想到VB.NET表單自動(dòng)提交。

我們?cè)?jīng)在一篇文章中介紹過(guò)郵件自動(dòng)注冊(cè)中的修改代理服務(wù)器的應(yīng)用。不過(guò)要想實(shí)現(xiàn)這一功能的話還需要一個(gè)應(yīng)用的實(shí)現(xiàn),那就是VB.NET表單自動(dòng)提交。在這里我們就會(huì)為大家詳細(xì)介紹這一應(yīng)用技巧。#t#

前些天在網(wǎng)上看到有人需要郵箱自動(dòng)注冊(cè)的程序,于是自己也寫(xiě)了一個(gè),在查資料的過(guò)程中我看到一些網(wǎng)友寫(xiě)的類(lèi)似文章,有一些是基于網(wǎng)絡(luò)協(xié)議,需要了解session,cookie這些東西,對(duì)于一個(gè)新手來(lái)說(shuō)很繁瑣,等到把這些東西搞懂,熱情也消耗殆盡。vb的優(yōu)點(diǎn)就在于可以讓那些對(duì)于計(jì)算機(jī)底層不是很了解的人迅速實(shí)現(xiàn)自己的程序設(shè)計(jì),我找到了一種比較簡(jiǎn)單的辦法,要求對(duì)HTML標(biāo)記語(yǔ)言有所了解即可,現(xiàn)在把自己的經(jīng)驗(yàn)寫(xiě)出來(lái)于各位網(wǎng)友共享,該方法也許不值一提,也許對(duì)您有所幫助。

我的辦法就是利用控件WebBrowser,我想很多人對(duì)它都很熟悉,在新建一個(gè)工程之后您要做的是添加兩個(gè)控件,一個(gè)是WebBrowser,另一個(gè)是Scriptlet,這兩個(gè)控件配合使用,就可以完成這個(gè)任務(wù)了,Scriptlet中的IHTMLDocument2對(duì)象可以用來(lái)獲得WebBrowser控件中的HTML文檔。這兩個(gè)控件的名字在組件對(duì)話框里分別叫Microsoft HTML Object Library和Microsoft Internet Controls。

這兩個(gè)控件添加完成之后,你還需要知道WebBrowser的一個(gè)事件DocumentComplete,這個(gè)事件在整個(gè)網(wǎng)頁(yè)下載完成之后觸發(fā),也就是說(shuō)在頁(yè)面完成之后這個(gè)事件即被執(zhí)行,有了這些就可以順利的實(shí)現(xiàn)注冊(cè)了。

下面以eyou網(wǎng)站的免費(fèi)郵箱注冊(cè)為例來(lái)實(shí)現(xiàn)我的程序設(shè)計(jì),新建標(biāo)準(zhǔn)工程后向Form中添加一個(gè)WebBrowser控件。所有代碼如下:

 

  1. Dim ii As Integer  
  2. Private Sub Form_Load()  
  3. WebBrowser1.Navigate "http://freemail.eyou.com/signup.html?
    bgp=%CE%D2%BD%D3%CA%DC&bgp_enable=on"  
  4. End Sub  
  5. Private Sub WebBrowser1_DocumentComplete
    (ByVal pDisp As Object, URL As Variant)  
  6. Dim doc As IHTMLDocument2  
  7. Set doc = WebBrowser1.Document  
  8. Dim tmp As String  
  9. If InStr(doc.body.innerText, "尋找一個(gè)新的用戶名") > 0 Then  
  10. tmp = "sdfsdf23" + Trim(Str$(ii))  
  11. doc.All.Item("uid").focus  
  12. SendKeys tmp  
  13. SendKeys "{enter}"  
  14. End If  
  15. If InStr(doc.body.innerText, "輸入您的個(gè)人資料") > 0 Then  
  16. doc.All.Item("Password").Value = "123456" 
  17. doc.All.Item("Confirm").Value = "123456" 
  18. doc.All.Item("FirstName").Value = "tomcant" 
  19. doc.All.Item("question").Value = "what is your name" 
  20. doc.All.Item("answer").Value = "my name is ddd" 
  21. doc.All.Item("year").Value = "80" 
  22. doc.All.Item("month").Value = "3" 
  23. doc.All.Item("day").Value = "18" 
  24. doc.All.Item("day").focus  
  25. SendKeys "{enter}"  
  26. End If  
  27. If InStr(doc.body.innerText, "申請(qǐng)郵箱成功") > 0 Then  
  28. iiii = ii + 1  
  29. WebBrowser1.Navigate "http://freemail.eyou.com/signup.html?
    bgp=%CE%D2%BD%D3%CA%DC&bgp_enable=on"  
  30. End If  
  31. End Sub 

 

Eyou的免費(fèi)郵箱注冊(cè)入口地址為http://freemail.eyou.com/signup.html?bgp=%CE%D2%BD%D3%CA%DC&bgp_enable=on,所以要在Form_load事件中使用WebBrowser控件的Navigate方法。

在eyou的注冊(cè)入口頁(yè)面完成之后WebBrowser1_DocumentComplete即被執(zhí)行,在這個(gè)函數(shù)中主要有三個(gè)條件語(yǔ)句,在三個(gè)條件語(yǔ)句之前有如下三句:

 

  1. Dim doc As IHTMLDocument2  
  2. Set doc = WebBrowser1.Document  
  3. Dim tmp As String 

 

doc定義為IHTMLDocument2對(duì)象用以取得WebBrowser1的文檔,tmp字符串是循環(huán)注冊(cè)中的用戶名,在VB.NET表單自動(dòng)提交的程序剛開(kāi)始定義了ii這個(gè)integer變量,在每次注冊(cè)完成之后ii加1附于tmp之后用以改變用戶名。

第一個(gè)條件語(yǔ)句如下:

 

  1. If InStr(doc.body.innerText, "尋找一個(gè)新的用戶名") > 0 Then  
  2. tmp = "sdfsdf23" + Trim(Str$(ii))  
  3. doc.All.Item("uid").focus  
  4. SendKeys tmp  
  5. SendKeys "{enter}"  
  6. End If 

 

首先判斷是否是注冊(cè)入口頁(yè)面,通過(guò)InStr(doc.body.innerText, "尋找一個(gè)新的用戶名") > 0語(yǔ)句實(shí)現(xiàn),doc.body.innerText即取得了該頁(yè)面中的所有文字。如果是則構(gòu)造一個(gè)用戶名。

doc.All.Item("uid").focus使用戶名文本框取得焦點(diǎn),其中uid是該文本框的ID,這個(gè)ID的取得是通過(guò)查看HTML源代碼得到的,所以要求對(duì)HTML標(biāo)記語(yǔ)言有所了解。使用戶名文本框取得焦點(diǎn)之后通過(guò)SendKeys函數(shù)模擬鍵盤(pán)向文本框發(fā)送tmp字符串,這樣用戶名即填寫(xiě)完成,之后發(fā)送回車(chē)鍵提交表單。關(guān)于SendKeys函數(shù)的使用大家可查閱MSDN幫助。

第二個(gè)條件語(yǔ)句首先判斷改頁(yè)面是否是個(gè)人資料填寫(xiě)頁(yè)面,然后填寫(xiě)個(gè)人資料,其方法同填寫(xiě)用戶名一致,取得個(gè)文本框的ID后填寫(xiě)其值,最后提交表單。

最后一個(gè)條件語(yǔ)句判斷郵箱注冊(cè)成功后將ii加一,然后將頁(yè)面重新定位到注冊(cè)入口頁(yè)面,至此一個(gè)循環(huán)完成。

以上VB.NET表單自動(dòng)提交的代碼即實(shí)現(xiàn)了自動(dòng)注冊(cè)提交。

責(zé)任編輯:曹凱 來(lái)源: wewill.cn
相關(guān)推薦

2009-10-23 13:14:38

2009-10-21 16:00:26

VB.NET CASE

2010-01-22 18:14:49

VB.NET菜單組件

2009-11-02 16:22:16

VB.NET面向?qū)ο?/a>

2009-10-13 15:09:19

VB.NET使用Tre

2009-10-23 15:35:42

VB.NET實(shí)用教程

2010-01-14 14:21:07

2010-01-22 15:37:02

VB.NET監(jiān)控類(lèi)

2009-10-28 10:15:48

VB.NET框架類(lèi)庫(kù)

2009-10-12 16:51:28

VB.NET使用Ora

2009-10-29 11:41:27

VB.NET寫(xiě)Obje

2010-01-12 11:47:09

VB.NET可選參數(shù)

2009-10-15 17:50:48

VB.NET調(diào)用API

2010-01-21 12:55:08

VB.NET對(duì)象序列

2010-01-12 15:54:47

VB.NET動(dòng)態(tài)控件數(shù)

2010-01-12 14:02:14

VB.NET數(shù)據(jù)實(shí)體層

2010-01-22 16:39:46

VB.NET添加自動(dòng)查

2009-11-02 16:41:55

VB.NET串行化對(duì)象

2009-10-28 11:27:34

VB.NET資源文件

2009-10-22 10:10:20

VB.NET Proc
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)