给一个函数,能获取IE地址栏的内容 (100分)

  • 主题发起人 主题发起人 wqhatnet
  • 开始时间 开始时间
W

wqhatnet

Unregistered / Unconfirmed
GUEST, unregistred user!
给一个函数,能获取IE地址栏的内容,5.X能通过的
 
var
Form1: TForm1;

implementation

{$R *.DFM}
Function GetURL(H:hwnd;lparam:longint):boolean;stdcall;
var str,url:array [0..254] of char;
begin
getclassname(h,@str,255);
if strpas(@str)='ComboBoxEx32' then // ComboBoxEx32可以改成Edit.
begin
SendMessage(h,WM_GETTEXT,255,LongInt(@url));
SendMessage(h,WM_SETTEXT,255,longint(pchar('http://www.sohu.com')));
Sendmessage(h,WM_KEYDOWN,VK_Return,1);
//你说的是加这一句吗??不行啊。 改成Edit就可以,相当于在地址栏敲回车
form1.ListBox1.Items.Add(strpas(@url));
end;
result:=true;
end;
function callbackproc(H:HWnd;lparam:longint):Boolean;stdcall;
var str:array [1..255] of char;
begin
getclassname(h,@str,255);
if ((strpas(@str)='CabinetWClass') or (strpas(@str)='IEFrame')) then
begin
Enumchildwindows(h,@GetURL,0);
end;
result:=true;
end;

procedure TForm1.findbuttonClick(Sender: TObject);
begin
listbox1.Clear;
Enumwindows(@callbackproc,0);
end;

end.
 
to app2001
这些代码我都有[超级猛料],这段代码的在ME下取的乱码,昨天晚上我试过了
感谢你的关怀
我已经解决了该问题了
方法如下
在uses中加入对DDEman,ShellAPE和ComObj单元的引用…………
procedure TaForm.FormCreate(Sender: TObject);
begin
DDE:=TDdeClientConv.Create(Self);
end;
//
if DDE.SetLink('Iexplore', 'WWW_GetWindowInfo') then
begin
DDE.OpenLink;
edit1.text:=DDE.requestData('-1');
//list.text:=StringReplace ( abc,'"',#13#10, [rfReplaceAll] );
DDE.CloseLink;
end else ShowMessage('IE没在运行');
///
procedure TaForm.FormDestroy(Sender: TObject);
begin
dde.Destroy;
end;
 
谁能猜出这个字谜,可得
 
后退
顶部