使用VB实现邮箱自动注册(一):表单自动提交

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

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

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

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

Dim ii As Integer

Private Sub Form_Load()

WebBrowser1.Navigate "http://freemail.eyou.com/signup.html?bgp=%CE%D2%BD%D3%CA%DC&bgp_enable=on"

End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

Dim doc As IHTMLDocument2

Set doc = WebBrowser1.Document

Dim tmp As String

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

tmp = "sdfsdf23" + Trim(Str$(ii))

doc.All.Item("uid").focus

SendKeys tmp

SendKeys "{enter}"

End If

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

doc.All.Item("Password").Value = "123456"

doc.All.Item("Confirm").Value = "123456"

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 = "80"

doc.All.Item("month").Value = "3"

doc.All.Item("day").Value = "18"

doc.All.Item("day").focus

SendKeys "{enter}"

End If

If InStr(doc.body.innerText, "申请邮箱成功") > 0 Then

ii = ii + 1

WebBrowser1.Navigate "http://freemail.eyou.com/signup.html?bgp=%CE%D2%BD%D3%CA%DC&bgp_enable=on"

End If

End Sub

Eyou的免费邮箱注册入口地址为http://freemail.eyou.com/signup.html?bgp=%CE%D2%BD%D3%CA%DC&bgp_enable=on,所以要在Form_load事件中使用WebBrowser控件的Navigate方法。

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

Dim doc As IHTMLDocument2

Set doc = WebBrowser1.Document

Dim tmp As String

doc定义为IHTMLDocument2对象用以取得WebBrowser1的文档,tmp字符串是循环注册中的用户名,在程序刚开始定义了ii这个integer变量,在每次注册完成之后ii加1附于tmp之后用以改变用户名。

第一个条件语句如下:

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

tmp = "sdfsdf23" + Trim(Str$(ii))

doc.All.Item("uid").focus

SendKeys tmp

SendKeys "{enter}"

End If

首先判断是否是注册入口页面,通过InStr(doc.body.innerText, "寻找一个新的用户名") > 0语句实现,doc.body.innerText即取得了该页面中的所有文字。如果是则构造一个用户名。doc.All.Item("uid").focus使用户名文本框取得焦点,其中uid是该文本框的ID,这个ID的取得是通过查看HTML源代码得到的,所以要求对HTML标记语言有所了解。使用户名文本框取得焦点之后通过SendKeys函数模拟键盘向文本框发送tmp字符串,这样用户名即填写完成,之后发送回车键提交表单。关于SendKeys函数的使用大家可查阅MSDN帮助。

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

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

以上代码即实现了自动注册提交。

时间: 2024-11-02 22:34:24

使用VB实现邮箱自动注册(一):表单自动提交的相关文章

Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册

动态验证:(不需要建Model模型) 1.建一个控制器,做表单操作(包含验证) <?php namespace Biaodan\Controller; use Think\Controller; class BiaodanController extends Controller { public function test() { if(empty($_POST))//如果$_POST空,显示添加页面, { $this->show(); } else //如果$_POST不为空,走验证,验证

thinkPHP实现表单自动验证_php实例

昨天晚上我们老大叫我弄表单自动验证功能,愁了半天借鉴了好多官网的知识,才出来,诶,总之分享一下我自己的成果吧! thinkphp 在Model基类为我们定义了自动验证的函数和正则表达式,我们只需要在对应的数据库表的模型类下建立$_validate属性就可以了. 1.我们找到Model基类,可以看到 protected $_validate       = array();  // 自动验证定,它是数组类型的,下面在对应数据模型文件定义它: 2. 复制代码 代码如下: public functio

ThinkPHP表单自动提交验证实例教程_php实例

本文以实例讲述了ThinkPHP表单自动提交验证的实现过程,详细步骤如下所示: 一.模板部分: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITL

chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式_javascript技巧

一.发现该问题的原因-是在写账号登录页面时,input表单添加了背景图片,当自动填充,搓搓的一坨淡黄色背景出来. 这个原因是我草率的直接设置在input元素里面,结果问题就来了.所以如果把这个图标放在input表单外面,就不会出现这个问题. 二.表单自动填充会添加浏览器默认样式怎么处理和避免 第二张图,就是表单自动填充后,chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性 input:-webkit-autofill, textarea:-web

PHP自动补全表单的两种方法

效果图: 第一种:从数据库中检索之后补全 第二种:邮箱等纯前端的补全 先说第二种,使用开源的插件,所以相对简单. github上面的项目 completer. https://github.com/fengyuanchen/completer 做法特别容易,github上面有详细的文档. 一开始尝试用这个来配上自己的后台代码,做成第一种的自动补全,搞了半天失败了.可能本人js太差,改动太多的话,代码很复杂,除非认真研究上面这个开源项目. 主要失败在我在后台数据库找出来的完整的模糊查询得到的数据,

chrome表单自动填充导致input文本框背景变成偏黄色问题解决

chrome表单自动填充后,input文本框的背景会变成偏黄色的,这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对其赋予以下样式:   复制代码 代码如下: input:-webkit-autofill { background-color: #FAFFBD; background-image: none; color: #000; } 在有些情况下,这个黄色的背景会影响到我们界面的效果,尤其是在我们给input文本框使用图片背

360极速浏览器如何设置表单自动填充

  360极速浏览器设置表单自动填充的方法如下: 如果已经厌倦了反复填写信息相同的网络表单,请使用只需点击一次即可完成表单填写的自动填充功能,从而节省时间并减少键入内容.如果不想使用自动填充功能,则可以在"自动填充选项"对话框中停用该功能.

jquery自动将form表单封装成json的具体实现

 这篇文章主要介绍了jquery自动将form表单封装成json的具体实现,需要的朋友可以参考下 前端页面:  代码如下: <span style="font-size:14px;"> <form action="" method="post" id="tf">  <table width="100%" cellspacing="0" cellpadding

关于window.onload事件及post表单自动登录问题

问题描述 关于window.onload事件及post表单自动登录问题 各位道友好,关于onload在网上查了很多资料,各家众说纷纭. 最近做一个在A网站跳转B网站并自动登录,用户密码等用A网站此用户的资料.我的思路很简单:将数据从A中传到B,B接收数据,并将接收的数据填入表单,然后自动提交. 我提交的方式是用一个onload事件去调用登录按钮的函数. 但是在这个onload上出现了问题. 解决方案 1. window.onload=ParamOnload 改为 1. window.onload

网页-表单自动填写内容提交

问题描述 表单自动填写内容提交 每天更新数据到mysql上.然后登陆网站,从数据库里面查找相关填表内容,然后自动填写进打开的网页表单内,自动点击提交,这个web网页 是别人的 解决方案 web automation的方式点击表格提交 解决方案二: 还可以浏览器插件,插入javascript来操作web页面 解决方案三: 下载httpanalyzerstd工具截取别人网站的提交动作的数据包,然后分析数据包格式构造,具体怎么操作自行百度,然后用使用http协议post方法提交,只要你数据包构造正确,