首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

webbrowser 問題解决办法

2013-01-28 
webbrowser 問題請問一下 procedure TForm1.Button2Click(Sender: TObject)vari:Integerrang1:IHTMLCont

webbrowser 問題
請問一下 
procedure TForm1.Button2Click(Sender: TObject);
var
i:Integer;
rang1:IHTMLControlRange;
s1:string;
begin
try
s1 := (IHTMLDocument2(webbrowser2.Document).images.item('signup_join_beanfun_signup_samplecaptcha_CaptchaImage',EmptyParam) as IHTMLElement).getAttribute('src',0);
rang1:=((IHTMLDocument2(webbrowser2.Document).body as HTMLBody).createControlRange)as IHTMLControlRange;
rang1.add(IHTMLDocument2(webbrowser2.Document).images.item('signup_join_beanfun_signup_samplecaptcha_CaptchaImage',EmptyParam)as IHTMLControlElement);
rang1.execCommand('Copy',False,0);
image1.Picture.Assign(ClipBoard);
except
end;

end;

我的SRC 他是這樣
src='LanapCaptcha.aspx?get=image&c=signup_join_beanfun_signup_samplecaptcha&t=d10d9114a3784d8eb46a70e752c6aea4&s=B%2bx0RN36Kv%2bKylW0opJhn%2fDf5Dsnpq1Hri9SwrOQS8I%3d'

都是不同的 我要怎麼輸入這個SRC呢?


[解决办法]
你是想按ID查找, 贴出的例子是按Src找, 肯定不行  :)

Delphi XE下测试通过
单元文件


unit Unit11;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, ExtCtrls;

type
  TForm11 = class(TForm)
    btn1: TButton;
    img1: TImage;
    wb1: TWebBrowser;
    btn2: TButton;
    mmo1: TMemo;
    edt1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form11: TForm11;

implementation
uses ActiveX, wininet, mshtml, Clipbrd;
{$R *.dfm}

procedure DomImg2Image(id:string; wb:TWebBrowser; img:TImage );
var
  rang:IHTMLControlRange;
begin
  rang:=((IHTMLDocument2(wb.Document).body as HTMLBody).createControlRange)as
    IHTMLControlRange;
  rang.add(IHTMLDocument2(wb.Document).images.item(id,EmptyParam)as
    IHTMLControlElement);
  rang.execCommand('Copy',False,0);
  img.Picture.Assign(ClipBoard);
end;

procedure TForm11.btn1Click(Sender: TObject);
var
  i:Integer;
  rang:IHTMLControlRange;
begin
  //遍历图片元素, 在memo中显示Img的ID和src属性
  mmo1.clear;
  for i:= 0 to IHTMLDocument2(wb1.Document).images.length-1 do
  begin
    mmo1.lines.add((IHTMLDocument2(wb1.Document).images.item(i,EmptyParam)as
      IHTMLElement).getAttribute('id',0));
    mmo1.lines.add((IHTMLDocument2(wb1.Document).images.item(i,EmptyParam)as
      IHTMLElement).getAttribute('src',0));
  end;
end;

procedure TForm11.btn2Click(Sender: TObject);
begin
  //edt1.Text是Img的ID值, webbrowse对象, TImage


  DomImg2Image(edt1.Text, wb1, img1);
end;

procedure TForm11.FormCreate(Sender: TObject);
begin
  wb1.Navigate('c:\aa.html');
end;

end.



aa.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
                <img id='signup_join_beanfun_signup_samplecaptcha_CaptchaImage' src='http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif' alt='CAPTCHA code image' />


            <img src='http://info-database.csdn.net/Upload/2012-10-08/amd-475-60-1008.jpg' alt='重新取得' />

</body>
</html>

热点排行