看到很多人都在为网上购票写软件,我也简单尝试了一下,贴一下主要实现方法:
WebBrowser browser = (WebBrowser)sender;
if (browser.ReadyState < WebBrowserReadyState.Complete)
{
return;
}
try
{
IHTMLWindow2 win = (IHTMLWindow2)webBrowser1.Document.Window.Frames["main"].DomWindow;
//获得Iframe doc
if(win != null)
{
IHTMLDocument2 doc = Train.CrossFrameIE.GetDocumentFromWindow(win);
//body的信息
// MessageBox.Show(doc.body.innerHTML);
//填充input
mshtml.IHTMLElementCollection inputs;
inputs = (mshtml.IHTMLElementCollection)doc.all.tags("INPUT");
mshtml.IHTMLElement element = (mshtml.IHTMLElement)inputs.item("loginUser.user_name", 0);
mshtml.IHTMLInputElement inputElement = (mshtml.IHTMLInputElement)element;
inputElement.value = "名字";
IHTMLElement pwdElement = (IHTMLElement)inputs.item("user.password", 0);
mshtml.IHTMLInputElement pwd = (mshtml.IHTMLInputElement)pwdElement;
pwd.value = "密码";
IHTMLElementCollection ImageTags = (mshtml.IHTMLElementCollection)doc.all.tags("IMG");
IHTMLElement img = (IHTMLElement)ImageTags.item("img_rrand_code", 0);
Image numPic = GetWebImage(webBrowser1, img);
unCodeAiYing UnCheckobj = new unCodeAiYing((Bitmap)numPic);
string strNum = UnCheckobj.getPicnum(); //识别图片randCode
//MessageBox.Show(strNum);
IHTMLElement randElement = (IHTMLElement)inputs.item("randCode", 0);
mshtml.IHTMLInputElement rand = (mshtml.IHTMLInputElement)randElement;
rand.value = strNum;
j++;
}
}
catch (System.Exception ex)
{
/* MessageBox.Show(ex.Message);*/
return;
}