怎么样把QQ网络页面登陆验证码图片,并显示在image上。

解决方案 »

  1.   

    用IDHTTP.Get方式将验证码图片存入流中.
    然后再导入到Image里
      

  2.   


    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;
      

  3.   


    //用到了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); //qq登陆的请抓包
      img.Position  :=0;
      jpeg.LoadFromStream(img);
      Form1.Image1.Picture.assign(jpeg);  jpeg.Free ;
      img.Free ;
      HTML.Free;  end;