闲的无聊的时候研究了下delphi网络模块。就简单模仿了下自动注册或者登陆网站这么一个功能来练手。闲话不多讲,代码奉上~

以下是腾讯QQ的填写表单和自动提交代码,直供研究学习使用,不得用于其他用途啊~~

先讲一下大致流程吧,要想自动提交表单,那么就需要知道网页中的各个元素,比如昵称输入框,生日选择框,表单提交按钮。对于这些元素可以使用网页源码查看来取得,然后就是使用控件取得这些元素,对这些元素进行操作。

在研究腾讯的QQ注册的时候出现过不少问题,到目前为止解决的问题有

1.QQ注册生日下拉框的赋值问题,因为它的类型不是下拉框也不是其他类型,腾讯这里设计的比较高级,我变化方法来取值的。

2.focus焦点问题。因为表单提交的时候需要onclick事件,在这个事件中需要验证提交的数据是否合法,之前想采用tab键自动按键的发现没有效果,最后使用的是onfocus来获得焦点,使其自动验证。

3.表单提交的问题。获得表单按钮的问题,这个问题也得到了解决。

目前还存在的问题:

1.验证码正确显示问题。现在腾讯的验证码比较高级,其验证码的源码显示的图片不是固定的,没有研究明白~百度的就可以正确获得,但是腾讯的~~头疼Ing

2.表单提交问题,需要点击两次提交。。不知道第一次为啥不起作用。只能分开一个填表按钮一个提交按钮。都放在一个事件中不成功。。

3.还有未完善的地方。自动申请的还没写保存事件。。。还有一些bug

好吧。献丑了,一些代码~~

procedure TMainFrm.FillAtecentForm;
var//自动填充表单
Doc: IHTMLDocument2;
input_nickElement, input_PwdElement,
input_rePwdElement, input_ValideCodeElement, input_YearElement,
input_monthElement, input_DayElement, input_submit: IHTMLInputElement;
begindoc := WebBrowser.document as ihtmldocument2;input_nickElement := (doc.all.item('nick',0) as IHTMLInputElement);input_nickElement.value := '注册一个';WebBrowser.OleObject.Document.getElementByID('nick').focus();input_PwdElement := (doc.all.item('password',0) as IHTMLInputElement);input_PwdElement.value := PassWordString;WebBrowser.OleObject.Document.getElementByID('password').focus();input_rePwdElement := (doc.all.item('pass_again',0) as IHTMLInputElement);input_rePwdElement.value := PassWordString;WebBrowser.OleObject.Document.getElementByID('pass_again').focus();input_YearElement := (doc.all.item('year_value',0) as IHTMLInputElement);input_YearElement.value := '1991年';WebBrowser.OleObject.Document.getElementByID('year_value').focus();input_monthElement := (doc.all.item('month_value',0) as IHTMLInputElement);input_monthElement.value := '2月';WebBrowser.OleObject.Document.getElementByID('month_value').focus();input_DayElement := (doc.all.item('day_value',0) as IHTMLInputElement);input_DayElement.value := '1日';WebBrowser.OleObject.Document.getElementByID('day_value').focus();input_ValideCodeElement := (doc.all.item('code',0) as ihtmlinputelement);if input_ValideCodeElement.status thenbegininput_ValideCodeElement.value := Trim(Edit1.Text);WebBrowser.OleObject.Document.getElementByID('code').focus();end;input_submit := (doc.all.item('submit',0) as ihtmlinputelement);WebBrowser.OleObject.Document.getElementByID('submit').focus();
end;

表单提交的。

procedure TMainFrm.btn2Click(Sender: TObject);
varinput : OleVariant;Doc : IHTMLDocument2;
begin//自动提交表单doc := WebBrowser.document as ihtmldocument2;input := doc.all.item('submit',0);input.click;
end;

下面是百度的,随机的邮箱嘿嘿。仅供学习使用~

procedure TMainFrm.RegistABaiduAcount;
var
Doc :IHTMLDocument2;
input_EmailElement, input_userNameElement, input_PwdElement,
input_rePwdElement, input_ValideCodeElement, input_submit: IHTMLInputElement;
ArandomInt, I : Integer;
SourceStr,Str:String;
beginStr := '';SourceStr:='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';Randomize;for I := 0 to 4 doStr := Str + SourceStr[Random(51)];Randomize;ArandomInt := Random(999999999);Str := Str + IntToStr(ArandomInt);input_EmailElement :=(doc.all.item('email',0) as ihtmlinputelement);input_EmailElement.value:= IntToStr(ArandomInt)+ '@qq.com';input_userNameElement :=(doc.all.item('username',0) as ihtmlinputelement);input_userNameElement.value := Str;input_PwdElement :=(doc.all.item('loginpass',0) as ihtmlinputelement);input_PwdElement.value:= PassWordString;input_rePwdElement :=(doc.all.item('verifypass',0) as ihtmlinputelement);input_rePwdElement.value:= PassWordString;input_ValideCodeElement := (doc.all.item('verifycode',0) as ihtmlinputelement);input_ValideCodeElement.value := Edit1.Text;input_submit.select;WebBrowser.oleobject.document.Forms.Item(0 , 0).submit;
//   BaiDuWebBrowser.Refresh2;
//   ShowValideCodeImage;
end;

好了。。还有一些没做好的地方,大家可以帮忙看下能不能弄好~~一起交流啊。。欢迎大家留言。。源码在完善后会整个贴出~~目前想要的可以单独跟我要~

百度腾讯QQ等网站注册自动提交表单源码2012最新相关推荐

  1. php curlopen,php自动提交表单的方法(基于fsockopen与curl)

    搜索热词 本文实例讲述了PHP基于fsockopen与curl实现自动提交表单的方法.分享给大家供大家参考,具体如下: PHP自动提交表单 1. fsockopen方法: PHP;"> ...

  2. [js] 如何按回车自动提交表单

    [js] 如何按回车自动提交表单 监听keydown事件并且判断按键代码为13,触发提交表单按钮或执行提交表单方法 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎 ...

  3. 点击button自动提交表单原因及解决方案

    在做登录的时候,需要ajax提交验证,但是发现点击button会自动submit表单,代码如下 <!DOCTYPE html> <html> <head> < ...

  4. form表单下的button不设置type会自动提交表单

    有时html页面button点击会出现自动提交表单的情况. 后来查资料得知,form表单下的按钮在没有指定type类型的时候,button会有一个默认的type="submit" ...

  5. Html:小技巧:自动提交表单的实现方法

    Html:小技巧:自动提交表单的实现方法 方法一: <html> <head> <title>Untitled Document</title> (1) ...

  6. csrf测试name=submit与submit()冲突导致无法自动提交表单的解决方法

    pikachu靶场环境中,post的csrf在参数中有一个submit=submit,开始poc如下 <html><body><form action="htt ...

  7. html表单自动提交表单提交表单数据类型,表单

    表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框.密码框.隐藏域.多行文本框. ...

  8. java 提交界面_使用javascript如何实现页面加载时自动提交表单

    if Request.QueryString("action")="loadsubmit" then Response.Write("自动提交&quo ...

  9. C#之自动提交表单登录QQ空间...

    本程序完整源码下载地址: http://download.csdn.net/download/friendan/4358792 呵呵,用程序自动登录网站,那是我很想要的一个功能,用分析数据包,模拟发包 ...

最新文章

  1. PHP面试MySQL数据库的索引
  2. http 协议上传文件multipart form-data boundary 说明--转载
  3. 关于DateTime的一点记录 ToString(yyyy-MM-dd HH:mm:ss)
  4. CentOS安装Confluence Wiki步骤
  5. mysql yum多实例_mysql———基于yum源实现多实例
  6. Codeforces 678E. Another Sith Tournament(概率DP,状压)
  7. 每个特征图1各因子和一个偏置_nlp中的概率图模型
  8. 拿高薪的web前端都是怎么学的?
  9. python笔记1-准确掌握列表和元组
  10. SharePoint 设置Library中文档的默认打开方式
  11. webstorm 配置webserver选项,让其他ip设备可访问(如手机等测试效果) ...
  12. iOS AVPlayer 使用总结
  13. Python3.7 Jpype安装
  14. SVN commit的时候报错conflicted state
  15. 解决“该文件夹包含名称过长且无法放入回收站的项目”导致无法删除
  16. 为什么C++被公认为是最难的语言?
  17. iPhone白苹果,刷机降级,无限重启,无限恢复模式,无限DFU模式,错误4013,错误3014...
  18. 用数组来写兔子繁衍问题C语言
  19. stagefright 架构分析(六) 创建一个 Soft Decoder
  20. Android如何把一个活动设置成主活动

热门文章

  1. 全国计算机一共几集,夏目友人帐第六季一共多少集?至少11集国内已播出
  2. Java基础の乱弹琴二:break关键字
  3. centos7—DNS域名系统
  4. C语言探索之旅 | 第一部分第三课:你的第一个程序
  5. 响应式织梦模板旅游公司类网站
  6. java JPanel设置边框和标题
  7. vba 云服务器,EXCEL服务器中VBA接口函数介绍
  8. 主板四大厂_(【四大品牌主板真假图片对比之技嘉】- 中关村在线)
  9. 微信小程序多页面共用一个数据globalData,并及时同步更新各页面的数据的做法
  10. MCMC和贝叶斯统计在宇宙微波背景辐射(CMB)中应用