发一个手动输入验证码自动补充账号密码登录12306的东东[含源码]

geminizane 2012-01-05 05:13:48
如题……
非程序猿工作的业余爱好者……学了大半年没写点东西……
实现的效果是:手动输入验证码,不停的登录,以便登入订票后台……...
简单功能……高手见笑……

1.使用VS2010开发
2.需要引用MSHTML(Microsoft HTML Object Library)

源码链接:http://download.csdn.net/detail/geminizane/4001304

源码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using mshtml;

namespace winFormYZM
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private static int TestCount = 1;//尝试次数

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
textBox1.Text = webBrowser1.Document.Url.ToString();//文本框显示为当前地址
timer1.Start();//启动显示时间的计时器
textBox2.Focus();//每次提交后,页面都会重新载入,因此,将验证码的输入框获得焦点,以便输入
}

private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate(new Uri("https://dynamic.12306.cn/otsweb/main.jsp"));//载入登录地址
}

private void textBox2_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox3.Text) && !string.IsNullOrEmpty(textBox4.Text))
{
int intTxt = textBox2.Text.Length;
if (intTxt >= 5)//验证码为四位数,在输完四位数后,空格,增加一位,触发以下事件
{
string strCode = textBox2.Text.TrimEnd();//因为加了空格,所以去除末位的空格
webBrowser1.Document.Window.Frames[0].Document.GetElementById("UserName").SetAttribute("value", textBox3.Text);//账号输入框
webBrowser1.Document.Window.Frames[0].Document.GetElementById("password").SetAttribute("value", textBox4.Text);//密码输入框
webBrowser1.Document.Window.Frames[0].Document.GetElementById("randCode").SetAttribute("value", strCode);//验证码输入框
//webBrowser1.Document.Window.Frames[0].Document.InvokeScript("subForm();");
//webBrowser1.Document.Window.Frames[0].Document.GetElementById("subLink").InvokeMember("subForm");
HtmlElement str = webBrowser1.Document.Window.Frames[0].Document.GetElementById("subLink");//提交按钮
str.InvokeMember("click");//点击事件
textBox2.Text = "";//清空验证码文本框
label6.Text = "当前尝试次数:" + TestCount;//显示尝试次数
TestCount++;//尝试次数自增
}
}
else
{
MessageBox.Show("用户名/密码不能为空");
textBox2.Text = "";
}
}

private void pictureBox1_Click(object sender, EventArgs e)
{
webBrowser1.Refresh();//点击图片,刷新页面
}

private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Refresh();//点击按钮,刷新页面
}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)//是否显示验证码
{
if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
return;
}
//this.pictureBox1.Image = GetRegCodePic(ref webBrowser1, "img_rrand_code", null, null);
this.pictureBox1.Image = GetRegCodePic(ref webBrowser1, "img_rrand_code", null, null);
}
else
{
pictureBox1.Image = null;
}
}

private void timer1_Tick(object sender, EventArgs e)//显示当前时间的计时器
{
label5.Text ="当前时间:"+DateTime.Now.ToString();
}

//感谢.NET交流群(67784580)中的各位朋友的源码倾情提供
public static Image GetRegCodePic(ref WebBrowser webBrowser, String imgID, String imgSrc, String imgAlt)
{
//HTMLDocument doc = (HTMLDocument)webBrowser.Document.DomDocument;
HTMLDocument doc = (HTMLDocument)webBrowser.Document.Window.Frames[0].Document.DomDocument;
HTMLBody body = (HTMLBody)doc.body;
IHTMLControlRange rang = (IHTMLControlRange)body.createControlRange();
IHTMLControlElement img;

// 如果没有图片的ID,通过Src或Alt中的关键字来取
if (imgID.Length == 0)
{
Int32 ImgNum = GetPicIndex(ref webBrowser, ref imgSrc, ref imgAlt);

if (ImgNum == -1)
return null;
//img = (IHTMLControlElement)webBrowser.Document.Images[ImgNum].DomElement;
img = (IHTMLControlElement)webBrowser.Document.Window.Frames[0].Document.Images[ImgNum].DomElement;
}
else
{
//img = (IHTMLControlElement)webBrowser.Document.All[imgID].DomElement;
img = (IHTMLControlElement)webBrowser.Document.Window.Frames[0].Document.All[imgID].DomElement;
}

rang.add(img);
rang.execCommand("Copy", false, null);
Image regImg = Clipboard.GetImage();
Clipboard.Clear();
return regImg;
}

public static Int32 GetPicIndex(ref WebBrowser webBrowser, ref String imgSrc, ref String imgAlt)
{
IHTMLImgElement img;

// 获取所有的Image元素
//for (Int32 i = 0; i < webBrowser.Document.Images.Count; i++)
for (Int32 i = 0; i < webBrowser.Document.Window.Frames[0].Document.Images.Count; i++)
{
//img = (IHTMLImgElement)webBrowser.Document.Images[i].DomElement;
img = (IHTMLImgElement)webBrowser.Document.Window.Frames[0].Document.DomDocument;

if (imgAlt.Length == 0)
{
if (img.src.IndexOf(imgSrc) >= 0)
return i;
}
else
{
if (imgSrc.Length == 0)
{
// 当imgSrc为空时,只匹配imgAlt
if (img.alt.IndexOf(imgAlt) >= 0)
return i;
}
else
{
// 当imgSrc不为空时,匹配imgAlt和imgSrc任意一个
if (img.alt.IndexOf(imgAlt) >= 0 || img.src.IndexOf(imgSrc) >= 0)
return i;
}
}
}
return -1;
}
}
}

...全文
2240 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
miyugulia 2012-09-27
  • 打赏
  • 举报
回复
大半年的话还是不错的!楼主加油哦
geminizane 2012-01-07
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 q6112345 的回复:]

引用 12 楼 geminizane 的回复:

引用 11 楼 bubuweiyin 的回复:

哪位发给我下呢 这个号没积分 有积分的上次泄漏帐号就消失了 请发307552041@qq.com,谢谢

我在#10L发了个Rel版的..
源码:http://i.minus.com/1325781244/QQAupKdZeiY8YLWSH7uJTA/db1Je321AvQCeY.r……
[/Quote]

可以下载的哈,有个DownLoad
EOS350D 2012-01-07
  • 打赏
  • 举报
回复
好东西啊 谢谢LZ 9号就要抢20号的票了
bianry 2012-01-07
  • 打赏
  • 举报
回复
下载地址进不去呀。。楼主给我发一个吧,万分感激。。
binarylove33@gmail.com
ppasoft 2012-01-07
  • 打赏
  • 举报
回复
连接无法打开,楼主给发一份
3Q
em295380@126.com
geminizane 2012-01-07
  • 打赏
  • 举报
回复
http://115.com/file/bhrr4rul#
传了份115的,需要的朋友下载吧,里边加了张使用说明
longlongagomm 2012-01-07
  • 打赏
  • 举报
回复
下载地址无法打开啊,我WIN7系统,楼主请发我一份好吗?谢谢了!215158015@qq.com
dengdai1223 2012-01-07
  • 打赏
  • 举报
回复
下载后,解压缩完了之后呢?
怎么用啊??
CalmOrz 2012-01-06
  • 打赏
  • 举报
回复
你妹的早点发啊、这样我也不至于订不到票了、、呜呜
xiaotiange 2012-01-06
  • 打赏
  • 举报
回复
不错 明天用
xingjibing 2012-01-06
  • 打赏
  • 举报
回复
这个可以有
q6112345 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 geminizane 的回复:]

引用 11 楼 bubuweiyin 的回复:

哪位发给我下呢 这个号没积分 有积分的上次泄漏帐号就消失了 请发307552041@qq.com,谢谢

我在#10L发了个Rel版的..
源码:http://i.minus.com/1325781244/QQAupKdZeiY8YLWSH7uJTA/db1Je321AvQCeY.rar
[/Quote]
Rel版的这个地址下不了啊~
楼主能给发一个麽?q6112345@qq.com 灰常感谢
bubuweiyin 2012-01-06
  • 打赏
  • 举报
回复
谢谢20楼的朋友
Januray 2012-01-06
  • 打赏
  • 举报
回复
恳求大家指教初次入门c#的菜鸟要买什么书来看才能学懂C#.我深深体会到我有多菜。在学校学了一学期只从老师那学到一个宿舍管理系统。什么美化什么记住密码什么什么什么太多什么都不会啊啊啊啊 !痛定思痛。决定向楼主看齐。求各路高手指点下在下。如何入门、如何看懂源代码。
geminizane 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 yy13xian 的回复:]

不行呀,下载了打不开。
[/Quote]

需要.net4.0的支持,win7下应该可以直接打开
在bin目录下有debug/rel两个exe可以使用
geminizane 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 bubuweiyin 的回复:]

楼主 你是怎么获得页面上的控件名称的呢???验证码是什么控件,名称是什么?想整一个自动识别验证码的
[/Quote]

用Opera的检查元素或者IE的开发者工具
验证码图片的相应HTML为:
<img height="26" src="passCodeAction.do?rand=lrand" onclick="this.src=this.src+'&'+Math.random();" title="单击刷新验证码" id="img_rrand_code">
bubuweiyin 2012-01-06
  • 打赏
  • 举报
回复
楼主 你是怎么获得页面上的控件名称的呢???验证码是什么控件,名称是什么?想整一个自动识别验证码的
msvvan 2012-01-06
  • 打赏
  • 举报
回复
不行呀,下载了打不开。
geminizane 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 bubuweiyin 的回复:]

哪位发给我下呢 这个号没积分 有积分的上次泄漏帐号就消失了 请发307552041@qq.com,谢谢
[/Quote]
我在#10L发了个Rel版的..
源码:http://i.minus.com/1325781244/QQAupKdZeiY8YLWSH7uJTA/db1Je321AvQCeY.rar
bubuweiyin 2012-01-05
  • 打赏
  • 举报
回复
哪位发给我下呢 这个号没积分 有积分的上次泄漏帐号就消失了 请发307552041@qq.com,谢谢
加载更多回复(7)
内容较大,权限不够,故将内容分为六个部分,需要的请自行下载。 教程版权归原作者所有,本人只是负责搜集整理,本人不承担任何技术及版权问题。教程仅提供学习参考,不得用于商业用途,请在下载后在24小时内删除。 目录: 0001-2科技展有限公司升级版源码 0001科技展有限公司修正版源码 0002机械配件制造销售公司修正版源码 0003家具地板公司修正版源码 0004-1机械有限公司修正版源码 0004机械有限公司修正版源码 0005机械产品公司修正版源码 0006绿色环保集团股份有限公司优化版 0007金属材料制品公司修正版源码 0008电气股份有限公司修正版源码 0009红色风格设备有限公司修正版源码 0010蓝色仪表配件有限公司优化版 0011装修公司网站系统修正版源码 0012环保工程企业网站修正版源码 0013国际集团股份有限公司修正版源码 0014蓝色汽车配件有限公司修正版源码 0015家俱集团有限公司源码 0016典雅地板家居网站源码 0017蓝色企业网站系统二 0018国际集团机械仪器公司修正版源码次优化版 0019红色风格企业网站系统优化版 0020机械设备公司修正版源码 0021蓝色环保工程企业网站系统修正版源码 0022国际集团电子科技公司修正版源码 0023国际集团机械电子公司修正版源码 0024美工超级漂亮的ASP卫生纸公司修正版源码 0025绿色环境保护工程公司修正版源码 0026绿色环保生态园林公司修正版源码 0028蓝色机械制造科技公司优化版 0029装修装饰公司企业网站修正版源码 0030绿色风格酒店网站修正版源码 0031机械制造网站修正版源码 0032蓝色机械制造公司修正版源码 0033机械设备制造公司修正版源码 0034ASP机械制造企业修正版源码 0035红色汽车配件公司网站修正版源码 0036机械制造企业修正版源码 0037机械设备公司修正版源码 0038浅蓝色电子科技公司修正版源码 0039机械制造公司企业网站修正版源码 0040国际集团机械有限公司修正版源码 0041机械设备公司优化版 0042机械企业修正版源码 0043机械设备有限公司修正版源码 0044红色机械设备有限公司修政版源码 0045汽车配件制造公司修正版源码 0046蓝色汽配公司修正版源码 0047绿色园林环保公司优化版 0048红色机械化工公司修正版源码 0049机械设备有限公司修正版源码 0051测试完整无错的经典万能企业站程序 0052某电气工程有限公司源码 0053优乐博特自动化工程有限公司网站源码
内容较大,权限不够,故将内容分为六个部分,需要的请自行下载。 教程版权归原作者所有,本人只是负责搜集整理,本人不承担任何技术及版权问题。教程仅提供学习参考,不得用于商业用途,请在下载后在24小时内删除。 目录: 0001-2科技展有限公司升级版源码 0001科技展有限公司修正版源码 0002机械配件制造销售公司修正版源码 0003家具地板公司修正版源码 0004-1机械有限公司修正版源码 0004机械有限公司修正版源码 0005机械产品公司修正版源码 0006绿色环保集团股份有限公司优化版 0007金属材料制品公司修正版源码 0008电气股份有限公司修正版源码 0009红色风格设备有限公司修正版源码 0010蓝色仪表配件有限公司优化版 0011装修公司网站系统修正版源码 0012环保工程企业网站修正版源码 0013国际集团股份有限公司修正版源码 0014蓝色汽车配件有限公司修正版源码 0015家俱集团有限公司源码 0016典雅地板家居网站源码 0017蓝色企业网站系统二 0018国际集团机械仪器公司修正版源码次优化版 0019红色风格企业网站系统优化版 0020机械设备公司修正版源码 0021蓝色环保工程企业网站系统修正版源码 0022国际集团电子科技公司修正版源码 0023国际集团机械电子公司修正版源码 0024美工超级漂亮的ASP卫生纸公司修正版源码 0025绿色环境保护工程公司修正版源码 0026绿色环保生态园林公司修正版源码 0028蓝色机械制造科技公司优化版 0029装修装饰公司企业网站修正版源码 0030绿色风格酒店网站修正版源码 0031机械制造网站修正版源码 0032蓝色机械制造公司修正版源码 0033机械设备制造公司修正版源码 0034ASP机械制造企业修正版源码 0035红色汽车配件公司网站修正版源码 0036机械制造企业修正版源码 0037机械设备公司修正版源码 0038浅蓝色电子科技公司修正版源码 0039机械制造公司企业网站修正版源码 0040国际集团机械有限公司修正版源码 0041机械设备公司优化版 0042机械企业修正版源码 0043机械设备有限公司修正版源码 0044红色机械设备有限公司修政版源码 0045汽车配件制造公司修正版源码 0046蓝色汽配公司修正版源码 0047绿色园林环保公司优化版 0048红色机械化工公司修正版源码 0049机械设备有限公司修正版源码 0051测试完整无错的经典万能企业站程序 0052某电气工程有限公司源码 0053优乐博特自动化工程有限公司网站源码
内容较大,权限不够,故将内容分为六个部分,需要的请自行下载。 教程版权归原作者所有,本人只是负责搜集整理,本人不承担任何技术及版权问题。教程仅提供学习参考,不得用于商业用途,请在下载后在24小时内删除。 目录: 0001-2科技展有限公司升级版源码 0001科技展有限公司修正版源码 0002机械配件制造销售公司修正版源码 0003家具地板公司修正版源码 0004-1机械有限公司修正版源码 0004机械有限公司修正版源码 0005机械产品公司修正版源码 0006绿色环保集团股份有限公司优化版 0007金属材料制品公司修正版源码 0008电气股份有限公司修正版源码 0009红色风格设备有限公司修正版源码 0010蓝色仪表配件有限公司优化版 0011装修公司网站系统修正版源码 0012环保工程企业网站修正版源码 0013国际集团股份有限公司修正版源码 0014蓝色汽车配件有限公司修正版源码 0015家俱集团有限公司源码 0016典雅地板家居网站源码 0017蓝色企业网站系统二 0018国际集团机械仪器公司修正版源码次优化版 0019红色风格企业网站系统优化版 0020机械设备公司修正版源码 0021蓝色环保工程企业网站系统修正版源码 0022国际集团电子科技公司修正版源码 0023国际集团机械电子公司修正版源码 0024美工超级漂亮的ASP卫生纸公司修正版源码 0025绿色环境保护工程公司修正版源码 0026绿色环保生态园林公司修正版源码 0028蓝色机械制造科技公司优化版 0029装修装饰公司企业网站修正版源码 0030绿色风格酒店网站修正版源码 0031机械制造网站修正版源码 0032蓝色机械制造公司修正版源码 0033机械设备制造公司修正版源码 0034ASP机械制造企业修正版源码 0035红色汽车配件公司网站修正版源码 0036机械制造企业修正版源码 0037机械设备公司修正版源码 0038浅蓝色电子科技公司修正版源码 0039机械制造公司企业网站修正版源码 0040国际集团机械有限公司修正版源码 0041机械设备公司优化版 0042机械企业修正版源码 0043机械设备有限公司修正版源码 0044红色机械设备有限公司修政版源码 0045汽车配件制造公司修正版源码 0046蓝色汽配公司修正版源码 0047绿色园林环保公司优化版 0048红色机械化工公司修正版源码 0049机械设备有限公司修正版源码 0051测试完整无错的经典万能企业站程序 0052某电气工程有限公司源码 0053优乐博特自动化工程有限公司网站源码

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧