新人求教,picturebox显示验证码的方式

以夕阳落款 华为 软件工程师  2014-01-12 11:20:05
最近在学习C#,想制作一个学校教务网站的登录系统,我先在form1中使用webbrowser控件打开网站,帐号和密码保存在单独一个user.txt的文件中,用webbrowser的webbrowser_documentcompleted事件在网站加载的时候自动填充。不过这和IE登录的功能一样了,我后来的想法是,仍然用webbrowser,但是把webbrowser的visial属性设置成False,用一个pictureBox来加载网站的验证码,由于帐号密码已经填充,所以输入完成验证码后只要增加一个button就可以提交了,另外的几项我已经做好了,就是不知道怎么把验证码放到picturebox里面,我尝试了好几种方法:1.用截图,我想用截图来截取这里面的一部分,保存后显示到picturebox里面,不过截图出来的一片空白;2.直接在picturebox的url里面输入验证码地址,可是这种方法的验证码肯定是无效的;3.用Savaasdialogue();方法,这种方式是最有效的,可是会弹出一个框让我们手动保存,严重影响用户体验。现在没什么好办法了,求大神指教啊。。。我们学校的网站:http://jwc.zjnu.edu.cn/cjcx/,验证码是一个asp文件
...全文
151 点赞 收藏 12
写回复
12 条回复
时间都去哪了啊 2014年01月13日
lz 你会写验证码的 你还说你是新人 你太谦虚了 顶你一个!!!!!!!!
回复 点赞
tcmakebest 2014年01月13日
引用 11 楼 u010379510 的回复:
[quote=引用 1 楼 tcmakebest 的回复:] 又开了个贴子, 用 GetUrlCacheEntryInfoW 方法获取已经在网页中显示的图片在本地的路径.
可以说得详细点吗,这个方法我百度找不到详细说明啊[/quote] 怎么可能百度不到,前几个都是啊,可能是被最后的 W 误导了吧, W 是指 Unicode 的版本.
回复 点赞
以夕阳落款 2014年01月13日
引用 1 楼 tcmakebest 的回复:
又开了个贴子, 用 GetUrlCacheEntryInfoW 方法获取已经在网页中显示的图片在本地的路径.
可以说得详细点吗,这个方法我百度找不到详细说明啊
回复 点赞
以夕阳落款 2014年01月13日
引用 4 楼 u011130289 的回复:
想不明白为什么不用脚本,网上一大堆,而且又简洁
我只想用C#实现这个功能
回复 点赞
以夕阳落款 2014年01月13日
引用 3 楼 sp1234 的回复:
你自己学习一下如何定义事件。你自定义的事件EventArgs子类类型,应该扩展一个 Src 属性,这样捕获事件处理的方法就能够通过 e.Src 得到图片的地址。 实际上图片可能是一个 GIF,这时候需要从下载的图片文件中找到所有各帧图片,然后找到最容易识别的一个图片,或者用多个图片做归类判断。 有些人自以为所谓的GIF图片可以防自动验证码识别,实际上那根本是蒙自己的。
不好意思,对这个解释不是很清楚,麻烦说得详细一点好吗?
回复 点赞
缝补茗 2014年01月13日
做一个验证码控件啊
回复 点赞
Regan-lin 2014年01月12日
想不明白为什么不用脚本,网上一大堆,而且又简洁
回复 点赞
以专业开发人员为伍 2014年01月12日
你自己学习一下如何定义事件。你自定义的事件EventArgs子类类型,应该扩展一个 Src 属性,这样捕获事件处理的方法就能够通过 e.Src 得到图片的地址。 实际上图片可能是一个 GIF,这时候需要从下载的图片文件中找到所有各帧图片,然后找到最容易识别的一个图片,或者用多个图片做归类判断。 有些人自以为所谓的GIF图片可以防自动验证码识别,实际上那根本是蒙自己的。
回复 点赞
以专业开发人员为伍 2014年01月12日
当webbrowser下载完毕所有文件,例如
void webBrowser1_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
    if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
    {
         ........
    }
}
可以遍历文档中的图片,例如
foreach (HtmlElement img in this.webBrowser1.Document.Images)
{
    var src = img.GetAttribute("src");
    .......
或者是先直接查到某个DIV 后者其它 html element 内部的 Image,取得其 src,然后抛出事件通知。
回复 点赞
tcmakebest 2014年01月12日
又开了个贴子, 用 GetUrlCacheEntryInfoW 方法获取已经在网页中显示的图片在本地的路径.
回复 点赞
junlinfushi 2014年01月12日
引用 5 楼 wyd1520 的回复:
你的方法行不通。完毕。
回复 点赞
本拉灯 2014年01月12日
你的方法行不通。完毕。
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告