C# WebBrowser 抓图获取网页验证码

在.NET的WINFORM开发中,大家可能都比较熟悉了WINFORM控件的 DrawToBitmap 方法。但是,如果你使用 WebBrowser 的时候,却发现没有 DrawToBitmap 这个功能,然而,WebBrowser 实际上是有这个功能的, 只是在VS IDE的智能提示列表里面没有显示。

WHY ? 俺也不知道

网页中的验证码,其实是通过一个独立的页面来输出的,例如 CSDN 的登录验证码地址为: http://passport.csdn.net/ShowExPwd.aspx

我们下面用WebBrowser获取这个图片,显示在窗体的PictureBox上。

this.webBrowser1.Navigate("http://passport.csdn.net/ShowExPwd.aspx");
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    Bitmap bmp = new Bitmap(200, 200);
    webBrowser1.DrawToBitmap(bmp, new Rectangle(0, 0, 300, 300));
    this.pictureBox1.Image = bmp;
}

需要说明的一点:

如果WebBrowser是动态创建的,则必须可见,否则,抓图是全白,没有内容的。

posted @ 2010-01-10 15:11  真功夫  阅读(3526)  评论(2编辑  收藏  举报