在编写网页自动登录器、网页自动注册器、广告模拟点击器的时候,主要思路是运用webBrowser,用来模拟表单的填写及鼠标点击事件等,以下是你可能会用到的函数:
- //判断是否网络正常
- private bool IsConnectedToInternet()
- {
- int Desc;
- return internet.InternetGetConnectedState(out Desc, 0);
- }
- //设置默认页面:
- webBrowser1.Navigate(new Uri("http://www.86ap.cn/copy.jsp"));
- //登录代码:
- private void btnlogin_Click(object sender, EventArgs e)
- {
- webBrowser1.Document.GetElementById("id").InnerText =txtuser.Text.ToString().Trim();//fill name
- webBrowser1.Document.GetElementById("passwd").InnerText =txtpwd.Text.ToString().Trim();//fill pwd
- HTMLElement formLogin = webBrowser1.Document.Forms["frmLogin"];
- formLogin.InvokeMember("submit");
- Thread.Sleep(5000);
- herfclick("http://www.86ap.cn/upload.jsp");//这是登录成功的操作,跳转到//upload.jsp
- //注意不是直接跳过去的,模拟点击链接
- //SESSION不会丢失
- herfclick("http://www.86ap.cn/copy.jsp");
- }
- //模拟点击链接:
- private void herfclick(string url)
- {
- for (int i = 0; i < webBrowser1.Document.All.Count; i++)
- {
- if (webBrowser1.Document.All[i].TagName == "A" && webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() ==url)
- {
- webBrowser1.Document.All[i].InvokeMember("click");//引发”CLICK”事件
- break;
- }
- }
- }
- //运行网页中的JS函数
- private void callJsMethod(string jsfun,string jsParameter)//函数名字,函数参数
- {
- HtmlDocument doc = webBrowser1.Document;
- doc.InvokeScript(jsfun,new object[]...{jsParameter});
- }
- //填充数据:
- private void filldate(string txt)
- {
- HtmlElement frmword = webBrowser1.Document.Forms["frmWord"];//找到from
- HtmlElementCollection txtarea = frmWord.GetElementsByTagName("TEXTAREA");
- HtmlElementCollection radio = frmWord.GetElementsByTagName("INPUT");
- radio[2].InvokeMember("click");//选择radio控件
- txtarea[0].InnerText = txt.ToString();
- }
- //原理很简单,在webBrowser1的DocumentCompleted事件中判断一下当前完成的url地址,如果当前完成url和当初要打开的url相等,就确定当前网页已经加载完成
- //string strURL 要找开的页面的URL
- private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
- {
- if (e.Url.ToString().Trim() == strURL.Trim())
- {
- //已经加载完成
- }
- }
- //控制流动条
- webBrowser1.Document.Window.ScrollTo(100, 100);//滚动到你要的坐标,以像素为单位