<
您还没有登录┊登录注册 当前在线:322
源码程序系统工具编程开发图形图像网络软件应用软件多媒体类娱乐休闲驱动程序各类教程各类论文文章阅读
ASPPHPJSPASP.NETVBVF百度搜索星星练题网络文摘股市消息技能习题详细分类
当前位置:首页 \ 源码程序 \ vb代码
站内搜索


使用VB实现邮箱自动注册

文件大小:10 k
运行平台:Windows9X/ME/NT/2000/XP
级别评定:
添加时间:2010-6-4 10:19:04
最后更新:2010-6-4 10:19:04
相关链接:无
所需金额:0 元
添加者:管理员

Download.1

/ ::软件简介:: / ::相关软件:: / ::软件点评:: /::上一个::/ ::下一个:: /
管理首页

使用VB实现邮箱自动注册

使用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 ""
   
   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 ""
   
   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. ... C&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 ""
   
   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加一,然后将页面重新定位到注册入口页面,至此一个循环完成。
   
   以上代码即实现了自动注册提交。

 

VB填充IE上的输入框并提交

VB填充IE上的输入框并提交
假设登录页面的HTML代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>testPage</title>
</head>

<body>

<FORM name=chh method = "POST" action = "login.asp">

  <table width="100%" border="0" cellspacing="0" cellpadding="2">
    <tr>
      <td width="31%" align="center">用户:</td>
      <td width="69%" align="left">
       <input name="LoginName" type="text" id="LoginName" size="12">
      </td>
    </tr>
    <tr>
      <td width="31%" align="center">密码:</td>
      <td width="69%" align="left">
       <input name="LoginPassword" type="password" id="LoginPassword" size="12">
      </td>
    </tr>
  </table>
<input type = "submit" id = "clickme" value = "提交">
</FORM>
</body>
</html>


很简单的页面,在上面有一个登录的Form,一个用户名输入框LoginName,一个密码输入框LoginPassword和一个提交按钮clickme



然后用IE打开这个页面,注意页面的title设置为testPage。



然后打开VB,在工程中引用Microsoft internet controls:

Private Sub Command1_Click()
    Dim IEList As New ShellWindows
    Dim browser
    Dim Doc
   
    On Error Resume Next
   
    ''遍历当前地浏览器窗口
    For Each browser In IEList
        ''找到需要地IE窗口
        If browser.Document.Title = "testPage" Then
            ''获得浏览器地文档对象
            Set Doc = browser.Document
            
            ''填写用户名字段
            Doc.body.All("LoginName").Value = "eddie"
            ''填写密码字段
            Doc.body.All("LoginPassword").Value = "123456"
            
            ''提交
            Doc.body.All("clickme").Click
        End If
    Next
End Sub

 

使用VB实现邮箱自动注册(二):修改代理服务器

如果一个IP在一段时间过多的注册,则该IP会被封调,一个办法就是修改注册表以修改代理服务器。在这里我使用一个API函数internetsetoption,使用之前要添加一个模块,然后加入如下代码:

Public Const internet_option_proxy = 38

Public Const INTERNET_OPEN_TYPE_PROXY = 3

Public Const INTERNET_OPTION_SETTINGS_CHANGED = 39

Type INTERNET_PROXY_INFO

    dwAccessType As Long

    lpszProxy As String

    lpszProxyBypass As String

End Type



Public Declare Function internetsetoption Lib "wininet.dll" _

    Alias "InternetSetOptionA" _

    (ByVal hinternet As Long, _

    ByVal dwoption As Long, _

    ByRef lpbuffer As Any, _

    ByVal dwbufferlength As Long) As Long

改代码定义了三个常数和一个结构,该API函数的具体用法请大家查询MSDN。VB修改注册表的办法就太多了,我就不多说了。在WebBrowser1_DocumentComplete事件中在添加一个条件语句,用以判断是否是IP被封的提示页面,代码如下:

If InStr(doc.body.innerText, "IP地址在这一段时间内已经注册了太多的用户") > 0 Then

    Dim options As INTERNET_PROXY_INFO

    options.dwAccessType = INTERNET_OPEN_TYPE_PROXY

    options.lpszProxy = "168.10.46.77:80"

    options.lpszProxyBypass = ""

    internetsetoption 0, internet_option_proxy, options, LenB(options)

    Dim don As Double

    Dim doff As Double

    Set reg = CreateObject("Ws cript.Shell")

    a = reg.regwrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer", _

                "211.144.96.250:80")

    a = reg.regwrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", _

                1)

    internetsetoption 0, INTERNET_OPTION_SETTINGS_CHANGED, 0, 0

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

  End If

至此代理服务器的修改也完成了。

对于一些有验证码的网站如何识别出图片上的验证码,我还没有办法解决,我试着用VC写了一个图片识别程序,但效果很不理想,希望大家多交流。
相关软件
·新浪邮箱注册器
·天空完美注册版本交换链ASP
·简单的注册检测表单 v1.0.0
·不垮注册邮箱真实姓名查询程序
·ASP注册邀请码 例子 v1.0
·如何用VB实现不重新启动而刷新注册表?
·AUTOCAD_MECHANICAL_V2006注册机
·需要回答问题才能注册的插件
·电影网站 快速注册插件 全面集成支付接口
·e人注册系统


1分 0
2分 0
3分 0
4分 0
5分 0
共有 0 人打分
平均得分:0


按字符查询:ABCDEFGHIJKLMNOPQRSTUVWXYZ0~9中文
下载图示: - 附汉化补丁 - 附注册 - 会员软件 - 推荐 - 最新添加
Rainight, 星旺坡 联网备案号:41092802000212 豫ICP备19032584号-1 页面执行时间: 0.13秒
业务QQ:80571569 手机:13030322310