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

4、验证程序

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

通过webbrowser控件获取验证码的更多相关文章

  1. delphi WebBrowser控件上网页验证码图片识别教程(一)

    步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm ...

  2. C# WebBrowser控件 模拟登录 抓取数据

    参考博客:C#中的WebBrowser控件的使用 参考博客:C#中利用WebBrowser控件,获得HTML源码 一.问题点: 1.模拟登录后,如果带有嵌套的iframe嵌套,不好读取iframe内容 ...

  3. C# WebBrowser控件模拟登录

    一.问题点: 1.模拟登录后,如果带有嵌套的iframe嵌套,不好读取iframe内容,可以直接指定iframe抓取网址 2.C# 清除WebBrowser控件的Session和Cookie 参考文档 ...

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

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

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

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

  6. C# webBrowser控件使用

    C# webBrowser控件使用心得 最近用到WebBrowser控件,遇到很多问题,也学习了不少新的东西.下面是我在C#下写的关于WebBrowser控件使用的代码. 1.WebBrowser常用 ...

  7. C#WebBrowser控件使用教程与技巧收集--苏飞收集

    C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System. ...

  8. VC++使用WebBrowser控件,强制给控件指定版本显示网页

    转载:http://www.cnblogs.com/1175429393wljblog/p/5398928.html 最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. ...

  9. c# webBrowser控件与js的交互

    转自:http://blog.csdn.net/sd2131512/article/details/7467564 [System.Runtime.InteropServices.ComVisible ...

随机推荐

  1. 洛谷 P4910 帕秋莉的手环 矩阵乘法+快速幂详解

    矩阵快速幂解法: 这是一个类似斐波那契数列的矩乘快速幂,所以推荐大家先做一下下列题目:(会了,差不多就是多倍经验题了) 注:如果你不会矩阵乘法,可以了解一下P3390的题解 P1939 [模板]矩阵加 ...

  2. mybatis动态sql——(六)

    0     什么是动态sql mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 通过mybatis提供的各种标签方法实现动态拼接sql.

  3. 八、mini2440裸机程序之UART(2)UART0与PC串口通信【转】

    转自:http://blog.csdn.net/shengnan_wu/article/details/8309417 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.相关原理图 2.相关寄 ...

  4. 嵌入式telnet的安装

    一 在已经安装telnet上,执行查询命令将查到的命令拷贝的未安装telnet的134上. [NTP-Fedora20 system]#whereis xinetd xinetd: /usr/sbin ...

  5. Faster R-CNN在GPU下的安装、测试经历

    在公司的服务器上安装faster rcnn时,遇到了不少问题: 1.cudnn版本不兼容的问题,解决办法参考: http://blog.csdn.net/WoPawn/article/details/ ...

  6. High-Speed Tracking with Kernelized Correlation Filters

          2015年的一篇论文,可参考:http://blog.csdn.net/carrierlxksuper/article/details/46461245.      另参考:http:// ...

  7. vs2010 快捷键

    我自己的快捷键: visual studio 2010快捷键: visual studio 2010快捷键: 强迫智能感知:Ctrl+J撤销:Ctrl+Z强迫显示参数信息:Ctrl+Shift+空格重 ...

  8. .net MVC 登陆模块后台代码

    首先是拦截器 public class AuthLoginAttribute : ActionFilterAttribute { public bool IsLogin = true; /// < ...

  9. Java web项目使用webSocket

    前端: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&qu ...

  10. intelliJ 打包jar的多种方式

    这里总结出用IntelliJ IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven ...