获取网站验证码的图片文件
网站地址是http://58.27.8.3/
图片文件在http://58.27.8.3/img? 后面是一个随机数(script是用math.random()实现的)
请大家帮忙
[解决办法]
uses ActiveX,ComObj;procedure TfrmMain.FormCreate(Sender: TObject);begin OleInitialize(nil);end;procedure TfrmMain.DomImg2Image(wb:TWebBrowser);var i:Integer; rang:IHTMLControlRange; s:string;begin try //pic是图片的节点(层)名称,你打开源代码看一下,替换成你的就行了 s := (IHTMLDocument2(wb.Document).images.item('pic',EmptyParam) as IHTMLElement).getAttribute('src',0); //showmessage(s); rang:=((IHTMLDocument2(wb.Document).body as HTMLBody).createControlRange)as IHTMLControlRange; rang.add(IHTMLDocument2(wb.Document).images.item('pic',EmptyParam)as IHTMLControlElement); rang.execCommand('Copy',False,0); image1.Picture.Assign(ClipBoard); except end;end;procedure TfrmMain.FormDestroy(Sender: TObject);begin OleUninitialize;end;
[解决办法]
//用到了IndyHTTP 即FHTTPprocedure Mypost.getvcode; var Img : TMemoryStream; jpeg : TJPEGImage; HTML: TStringstream; str:string; begin img:=Tmemorystream.Create; jpeg:=TJpegimage.Create; HTML:=TStringstream.Create; Fhttp.Request.Referer :=; Fhttp.Get('http://58.27.8.3/img?',img); img.Position :=0; jpeg.LoadFromStream(img); Form1.Image1.Picture.assign(jpeg); jpeg.Free ; img.Free ; HTML.Free; end;