知识大全 VB.NET表单自动提交实现方案剖析

Posted

篇首语:青春须早为,岂能长少年。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB.NET表单自动提交实现方案剖析相关的知识,希望对你有一定的参考价值。

VB.NET表单自动提交实现方案剖析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我们曾经在一篇文章中介绍过邮件自动注册中的修改代理服务器的应用 不过要想实现这一功能的话还需要一个应用的实现 那就是VB NET表单自动提交 在这里我们就会为大家详细介绍这一应用技巧

  前些天在网上看到有人需要邮箱自动注册的程序 于是自己也写了一个 在查资料的过程中我看到一些网友写的类似文章 有一些是基于网络协议 需要了解session cookie这些东西 对于一个新手来说很繁琐 等到把这些东西搞懂 热情也消耗殆尽 vb的优点就在于可以让那些对于计算机底层不是很了解的人迅速实现自己的程序设计 我找到了一种比较简单的办法 要求对HTML标记语言有所了解即可 现在把自己的经验写出来于各位网友共享 该方法也许不值一提 也许对您有所帮助

  我的办法就是利用控件WebBrowser 我想很多人对它都很熟悉 在新建一个工程之后您要做的是添加两个控件 一个是WebBrowser 另一个是Scriptlet 这两个控件配合使用 就可以完成这个任务了 Scriptlet中的IHTMLDocument 对象可以用来获得WebBrowser控件中的HTML文档 这两个控件的名字在组件对话框里分别叫Microsoft HTML Object Library和Microsoft Internet Controls

  这两个控件添加完成之后 你还需要知道WebBrowser的一个事件DocumentComplete 这个事件在整个网页下载完成之后触发 也就是说在页面完成之后这个事件即被执行 有了这些就可以顺利的实现注册了

  下面以eyou网站的免费邮箱注册为例来实现我的程序设计 新建标准工程后向Form中添加一个WebBrowser控件 所有代码如下

   Dim ii As Integer

   Private Sub Form_Load()

   WebBrowser Navigate ?

  bgp=%CE%D %BD%D %CA%DC&bgp_enable=on

   End Sub

   Private Sub WebBrowser _DocumentComplete

  (ByVal pDisp As Object URL As Variant)

   Dim doc As IHTMLDocument

   Set doc = WebBrowser Document

   Dim tmp As String

   If InStr(doc body innerText 寻找一个新的用户名 ) > Then

   tmp = sdfsdf + Trim(Str$(ii))

   doc All Item( uid ) focus

   SendKeys tmp

   SendKeys enter

   End If

   If InStr(doc body innerText 输入您的个人资料 ) > Then

   doc All Item( Password ) Value =

   doc All Item( Confirm ) Value =

   doc All Item( FirstName ) Value = tomcant

   doc All Item( question ) Value = what is your name

   doc All Item( answer ) Value = my name is ddd

   doc All Item( year ) Value =

   doc All Item( month ) Value =

   doc All Item( day ) Value =

   doc All Item( day ) focus

   SendKeys enter

   End If

   If InStr(doc body innerText 申请邮箱成功 ) > Then

   iiii = ii +

   WebBrowser Navigate ?

  bgp=%CE%D %BD%D %CA%DC&bgp_enable=on

   End If

   End Sub

  Eyou的免费邮箱注册入口地址为?bgp=%CE%D %BD%D %CA%DC&bgp_enable=on 所以要在Form_load事件中使用WebBrowser控件的Navigate方法

  在eyou的注册入口页面完成之后WebBrowser _DocumentComplete即被执行 在这个函数中主要有三个条件语句 在三个条件语句之前有如下三句

   Dim doc As IHTMLDocument

   Set doc = WebBrowser Document

   Dim tmp As String

  doc定义为IHTMLDocument 对象用以取得WebBrowser 的文档 tmp字符串是循环注册中的用户名 在VB NET表单自动提交的程序刚开始定义了ii这个integer变量 在每次注册完成之后ii加 附于tmp之后用以改变用户名

  第一个条件语句如下

   If InStr(doc body innerText 寻找一个新的用户名 ) > Then

   tmp = sdfsdf + Trim(Str$(ii))

   doc All Item( uid ) focus

   SendKeys tmp

   SendKeys enter

   End If

  首先判断是否是注册入口页面 通过InStr(doc body innerText 寻找一个新的用户名 ) > 语句实现 doc body innerText即取得了该页面中的所有文字 如果是则构造一个用户名

  doc All Item( uid ) focus使用户名文本框取得焦点 其中uid是该文本框的ID 这个ID的取得是通过查看HTML源代码得到的 所以要求对HTML标记语言有所了解 使用户名文本框取得焦点之后通过SendKeys函数模拟键盘向文本框发送tmp字符串 这样用户名即填写完成 之后发送回车键提交表单 关于SendKeys函数的使用大家可查阅MSDN帮助

  第二个条件语句首先判断改页面是否是个人资料填写页面 然后填写个人资料 其方法同填写用户名一致 取得个文本框的ID后填写其值 最后提交表单

  最后一个条件语句判断邮箱注册成功后将ii加一 然后将页面重新定位到注册入口页面 至此一个循环完成

cha138/Article/program/net/201311/13193

相关参考