Como pegar uma imagem do TWebbrowser de uma forma diferente

Delphi

18/11/2010

Preciso pegar uma imagem do TWebbrowser. Vi algumas dicas aqui no forum para utilizar dois Webbrowser para pegar as imagens. As imagens que estou citando são dá tecnologica anti-robo. Queria saber se alguém já consegui pegar uma imagens específica do Webbrowser já carregado.

Dá para pegar uma Interface do Document do Webbrowser para saber os dados da imagem esta Interface é do tipo IDispatch, quando eu tento converter a  imagem para IPictureDisp ele me retorna um erro de Interface not Supported.


var
  document : IHTMLDocument2Disp;
  picture      : IPicture;
  picDisp      : IPictureDisp;

begin
  WebBrowser1.Document.QueryInterface(IHTMLDocument2Disp, document);

   (document.Images.Item(0, 0) as IHTMLImgElement).QueryInterface(IPictureDisp, picDisp);

   if (picDisp = nil) then
      picDisp := document.images.item(0, 0) as IPictureDisp;

    try
      imagePic := TPicture.Create;

      SetOlePicture(imagePic, IPictureDisp(document.images.item(0, 0)));

      imagePic.SaveToFile('C:\Documents and Settings\sistemas\Desktop\Teste Portal\captchaIPictureDisp.gif');
      Image1.Picture.Assign(imagePic);
    except
      on e : Exception do
        ShowMessage(e.Message);
    end;
end;



Se alguém conseguiu fazer de uma forma diferente sem utilizar dois Webbrowser ou sem utilizar a forma com descrevi acima e quiser compartilhar ficarei muito grato.
Fernando Santos

Fernando Santos

Curtidas 0
POSTAR