• 用VB自动填写表格

    post by Holmesian / 2008-5-4 22:30 Sunday
    大家可能学VB都很久了不过却是没用VB干出什么有用的事情,今天我就来讲下如何用VB自动填写网页的表格
    我们的试验网页就是http://s4.travian.cn/login.php
    打开它你就知道它长什么样子了,然后我们查看下网页的源代码(方法:菜单-》查看-》源代码)
    我们可以在其中找到这么一段
    复制内容到剪贴板代码:
    [quote]<input class="fm fm110" type="text" name="ee852ab" value="" maxlength="15"> <span class="e f7"></span>
    </td></tr>
    <tr><td><label>密码:</label>
    <input class="fm fm110" type="password" name="ec3cfe6" value="" maxlength="20"> <span class="e f7"></span>[/quote]
    其中value的值也就是那两个输入框的值
    我们还可以找到这么一段
    复制内容到剪贴板代码:
    <input type="image" value="login" border="0" name="s1" src="img/cn/b/l1.gif" width="80" height="20"    ></input>
    这个就是那个确定按钮的代码了
    不懂html,不知道如何找到这些代码?这个就需要借助与Dreamweaver的可视化功能了,用它分析网页也挺方便的
    然后就是VB了~
    用VB添加个webbrowser控键进来尽量把它在窗体上画大点~,(不知道如何找到这个控键?那就得借助baidu了,我不可能面面具到哦~)
    我们把webbrowser控键得name属性改为IE,当然也可以是你自己喜欢得哈,不过要和下面得程序配套
    然后就是最关键得填表了



    复制内容到剪贴板代码:
    Private Sub Form_Load()
        '初始化时打开该网页
        IE.navigate "http://s4.travian.cn/login.php"
    End Sub

    找个2个command控键,分别为command1和command2控键,将其caption改为 “输入” 和 “确定”

    复制内容到剪贴板代码:
    Private Sub command1_Click()
        Dim vDoc, vTag
        Dim i As Integer
        Set vDoc = IE.document
        For i = 0 To vDoc.All.length - 1 '检测所有标签
                If UCase(vDoc.All(i).tagName) = "INPUT" Then  '找到input标签
                    Set vTag = vDoc.All(i)
                    If vTag.Type = "text" Then
                        vTag.Value = "123456" '这个是输入到用户名中得值
                    End If
                    If vTag.Type = "password" Then
                        vTag.Value = "111222333"'这个是输入到密码框中的值
                    End If
                    If vTag.name = "s1" Then
                        vTag.Click
                    End If
              endif
        next i
    End sub
    Private Sub command2_Click()
        Dim vDoc, vTag
        Dim i As Integer
        Set vDoc = IE.document
        For i = 0 To vDoc.All.length - 1 '检测所有标签
                If UCase(vDoc.All(i).tagName) = "INPUT" Then  '找到input标签
                    Set vTag = vDoc.All(i)
                    If vTag.name = "s1" Then
                        vTag.Click'点击确定键
                    End If
                endif
        next i
    End sub

    然后运行程序,发现点击程序中的“输入” 按钮后,需要输入的值会被自动填写到输入框中
    点击程序中的“确定”按钮,相当于点击网页中的确定按钮的效果一样~

    以上就是自动填表的基本原理了,但是对于某些加了验证图片的就要麻烦点了,要判断验证图片代表的字母,不过不在本文的讨论范围内哈~只要把上面的理解透彻了,那么给travian作个外挂就只是时间问题了,呵呵

    发表评论: