1、首先介绍下基本控件(拖控件大家都会,我就不一一介绍了),看下图;

2、添加MSHTML引用,步骤如下:

解决方案—右键“引用”—​添加引用—在.NET下找到Microsoft.mshtml组件—点击确定;

3、编写代码,双击button1​按钮添加事件;(注意在引用类中加上using mshtml;)

目标网站:http://admin.3cjz.cn/reg.php?username=ghdhdd

完整代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using mshtml;
  10. namespace GetCodeImg
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public Form1()
  15. {
  16. InitializeComponent();
  17. }
  18. private void button1_Click(object sender, EventArgs e)
  19. {
  20. //通过webbrowser控件打开网页
  21. webBrowser1.Navigate(textBox1.Text.Trim());
  22. //检查网页是否已经加载完成
  23. while (webBrowser1.ReadyState < WebBrowserReadyState.Complete)
  24. Application.DoEvents(); //若没加载完则继续加载
  25. //根据验证码ID获取验证码元素
  26. HtmlElement ImageCodeTag = webBrowser1.Document.GetElementById("vcodesrc");
  27. //调用GetCodeImage方法获取验证码
  28. Image FinalImage = GetCodeImage(webBrowser1, ImageCodeTag);
  29. //验证码显示
  30. pictureBox1.Image = FinalImage;
  31. }
  32. private Image GetCodeImage(WebBrowser WebControlName, HtmlElement ImgeTag)
  33. {
  34. //获取网页所有内容
  35. HTMLDocument hdoc = (HTMLDocument)WebControlName.Document.DomDocument;
  36. //获取网页body标签中的内容
  37. HTMLBody hbody = (HTMLBody)hdoc.body;
  38. //创建一个接口
  39. IHTMLControlRange hcr = (IHTMLControlRange)hbody.createControlRange();
  40. //获取图片地址
  41. IHTMLControlElement hImg = (IHTMLControlElement)ImgeTag.DomElement;
  42. //将图片添加到接口中
  43. hcr.add(hImg);
  44. //将图片复制到内存
  45. hcr.execCommand("Copy", false, null);
  46. //从粘贴板得到图片
  47. Image CodeImage = Clipboard.GetImage();
  48. //返回得到的验证码
  49. return CodeImage;
  50. }
  51. }
  52. }

4、验证程序

PS:本人还是还是菜鸟级程序猿,如有编写错误,欢迎指正。

通过webbrowser控件获取验证码相关推荐

  1. 使用WebBrowser控件获取网页源码的方法

    使用WebBrowser控件获取网页源码的方法,网上有很多介绍,但绝大多数的人都是使用以下的方法获取: (WebBrowser1.Document as IHtmlDocument2).body.ou ...

  2. 用 .Net WebBrowser 控件获取POST数据

    用 .Net WebBrowser 控件获取POST数据     很多应用中,开发者需要自己构建一个浏览器,并且对通过这个浏览器提交的请求进行截获,比如用户通过这个浏览器浏览了一个网页,并向网站提交( ...

  3. webbrowser抓取php网页源码,获取webbrowser控件 网页的源码(收藏)

    获取webbrowser控件 网页的源码(收藏) 翻译|其它|编辑:郝浩|2005-04-28 09:45:00.000|阅读 3152 次 概述: 我在网上找到使用rft控件保存webbrowse文 ...

  4. vb实现webbrowser显示html,VB.NET 通过窗口句柄,获取webbrowser控件HTML内容

    VB.NET通过窗口句柄,获取webbrowser控件HTML内容 通过Sendmessage获取IE浏览器内容 webbrowser控件内容获取 Class Win32API     _ Publi ...

  5. 【C#】通过webbrowser控件自动注册QQ号讲解

    前言:通过webbrowser控件来自动填写网页内容快速申请QQ号,其实对于没有使用类似JS脚本语言的简单网页元素来说比较简单,但是TX并不是吃素的,因此对于其网页自动填写内容需要注意些细节.下面介绍 ...

  6. C#WebBrowser控件使用教程与技巧收集

    常用的方法 1 Navigate(string urlString):浏览urlString表示的网址 2 Navigate(System.Uri url):浏览url表示的网址 3 Navigate ...

  7. C#中的WebBrowser控件的使用

    关键字:C# WebBrowser 作者:txw1958 原文:http://www.cnblogs.com/txw1958/archive/2012/09/24/CSharp-WebBrowser. ...

  8. [JavaScript]WebBrowser控件下IE版本的检测

    转载请注明原文地址:https://www.cnblogs.com/litou/p/10772272.htm 在客户端检查用户使用的浏览器类型和版本,都是根据navigator.userAgent属性 ...

  9. WebBrowser控件[Windows窗体]之介绍篇

    Windows 窗体控件 WebBrowser 可承载网页,并为应用程序提供 Web 浏览功能. 使用 WebBrowser 控件,可以复制应用程序中的 Internet Explorer Web 浏 ...

最新文章

  1. gunicorn源码分析
  2. unittest安装教程_unittest框架与自动化测试环境的搭建
  3. cocos2dx 2.2.5 hitWidget-onTouchEnded(pTouch, pEvent); 异常
  4. [Erlang 0014]Erlang垃圾回收机制
  5. 6月Top 20榜单出炉啦! 万万没想到区块链大佬竟在忙这个...
  6. Linux 平台 C/C++ 代码中设置线程名
  7. 深入java核心_Java核心(五)深入理解BIO、NIO、AIO
  8. Android 访问网页
  9. 任意占空比的方波程序
  10. swift 通知_Swift 闭包无脑加 [weak self] 行不行?
  11. SourceTree下载与安装 ---记录一下,如果忘记了再拿来看看
  12. 2014恒生电子笔试题
  13. matlab常用代码及操作
  14. 如何对全站进行死链接检测?
  15. LTP(Linux Test Project)学习(五)——LTP代码学习
  16. python spearman相关系数_常用的特征选择方法之 Spearman 秩相关系数
  17. 我可以抱你吗?linux
  18. 计算机学什么怎么学会的,学电脑先学什么 新手怎么学电脑
  19. 如何提高Python计算浮点数的精度(如何解决Python中浮点数计算误差问题)
  20. 【VisualStudio】Visual Studio Community 2015/2017/2019/2022 官网下载链接(传送门)

热门文章

  1. OpenCV跟踪支持的实例(附完整源代码)
  2. QDoc特殊内容special content
  3. QDoc包括图片includingimages
  4. C语言二叉搜索树返回key的树级(附完整源码)
  5. OpenGL定向光的投影阴影
  6. c++标准程序库异常
  7. c++抽象类在多继承中的应用
  8. 经典C语言程序100例之四六
  9. 73.JVM内存基础结构,参数分类,推荐的配置项,参数混用问题,常用工具,常用命令
  10. maven中去掉单元测试的配置