如何跟踪IE的地址栏?(300分)

  • 主题发起人 主题发起人 lingxin
  • 开始时间 开始时间
L

lingxin

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要写一个程序跟踪IE。具体的是从所有打开的IE窗口中得到地址。

 
讲一下原理也可以啊!
但不要乱灌水
 
我该才帮你试了一下,没成功。我是这样做的。
IE的地址栏是一个组合框,我想只要得到它的句柄
就可以通过GetWindowText得到其中的内容。但失败了:(
 
不是说了要 hook
 
等待高手出现
to xixi12359 希望你对hook有更多的了解
 
听听+混分^^
 
问题已经解决,过几天分分
 
lingxin:
我成功了!给你源代码.

procedure TForm1.Button1Click(Sender: TObject);
var
hwnd: Integer;
h1,h2,h3,h4,h5: Integer;
buffer: array[0..1023] of char;
begin
memo1.Lines.clear;
hwnd := FindWindow('IEFrame',nil);
Memo1.Lines.Append(IntToStr(hwnd));
h1 := FindWindowEx(hwnd,0,'WorkerA',nil);
Memo1.Lines.Append(IntToStr(h1));
h2 := FindWindowEx(h1,0,'ReBarWindow32',nil);
Memo1.Lines.Append(IntToStr(h2));
h3 := FindWindowEx(h2,0,'ComboBoxEx32',nil);
Memo1.Lines.Append(IntToStr(h3));
h4 := FindWindowEx(h3,0,'ComboBox',nil);
Memo1.Lines.Append(IntToStr(h4));
h5 := FindWindowEx(h4,0,'Edit',nil);
Memo1.Lines.Append(IntToStr(h5));
SendMessage(h5,WM_GETTEXT,1024,Integer(@buffer[0]));
Memo1.Lines.Append(buffer);
end;

 
lingxin:
刚才的源代码只找到一个IE窗口,你可以用EnumWindows。
找到所有IE窗口。再设一个定时器应该可以完成你的工作。:)
 
to Reboot
这个问题我已经解决,没有用你的方法。
不过还是感谢你的帮助
 
接受答案了.
 
Reboot:
h1 := FindWindowEx(hwnd,0,'WorkerA',nil);
上面一句在我的机器里是WorkerW而不是WorkerA,我想所有版本的IE都应该一样的?
 
后退
顶部