这里就写一写其他的一些铺注功能吧。比如自动刷新页面,把验证码的图片下载下来,禁止提示框的弹出等等。我们先来说一下验证码图片的下载吧,很多的网站都是http://www.m-photos.cn/Inc/ChkCode/validatecode.asp用一个页面生成图片,在在验证的地方显示。所以在webBrowser很难把他下载下来,当然有的人去模拟又击另成为图片。这样也不失一种做法。我这里是参考。SHdocVw.dll接口来实现下载。代码如下:
HTMLDocument html = (HTMLDocument)this.webBrowser1.Document.DomDocument; //下面代码中,获取图片的方式有很多,因为比较简单,我就不列举了,直接用ID来做为例子的 IHTMLControlElement img = (IHTMLControlElement)webBrowser1.Document.Images["chk"].DomElement; IHTMLControlRange range = (IHTMLControlRange)((HTMLBody)html.body).createControlRange(); range.add(img); range.execCommand("Copy", false, null); img = null; range = null; html = null; if (Clipboard.ContainsImage()) { this.pictureBox3.Image = Clipboard.GetImage(); } else { MessageBox.Show("执行不成功"); } Clipboard.Clear(); int[] Key = GetKey((Bitmap)this.pictureBox3.Image); for (int i = 0; i < Key.Length; i++) { textBox3.Text += Key[i].ToString(); }
有更好的朋友请回复,联系我!
另外一个功能就是要禁止提示框的弹出,为什么要禁止我就不说了吧。在webBrowser上直接禁止弹出提示框。好了不废话了直接上代码:
public Form1() { InitializeComponent(); SHDocVw.WebBrowser wb = this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser; wb.NavigateComplete2 += new SHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(wb_NavigateComplete2); } void wb_NavigateComplete2(object pDisp, ref object URL) { mshtml.IHTMLDocument2 doc = (this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.IHTMLDocument2; doc.parentWindow.execScript("function alert(str){return ''}", "javascript"); }
当然还有其他的办法,比如说FindWindow,SendMessage。虽然不成功但也学到了东西哦。大家知道为什么那两个配合不成功吗?欢迎大家交流
最后补上自动刷新页面代码:
webBrowser1.Refresh();
很简单就一句,哈哈哈。被忽悠了吧!
本文参考:
http://www.docin.com/p1-179876212.html