最近研究研究这个,总结下面三种方法:
- 修改http包(没研究了就不具体说了)
- BHO插件
- TInternetExplorer
第二种方法就贴一段代码吧:
procedure DoBeforeNavigate2(const pDisp: IDispatch; var URL: OleVariant; var Flags: OleVariant; var TargetFrameName: OleVariant; var PostData: OleVariant; var Headers: OleVariant; var Cancel: WordBool);
begin
if (URL <> '') then
if Pos('baidu.com',URL)>0 ) then
begin
URL:='http://www.bstaint.net';
(pDisp as IWebbrowser2).Navigate2(URL,Flags,TargetFrameName,PostData,Headers);
end;
end;
具体的代码需要的可以发邮件给我。
第三种方法仔细说下,先引入SHDocVw, OleServer这两个单元,然后代码:
procedure TForm1.Navigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
if (URL <> '') then
if (Pos('baidu.com',URL)>0 ) then
begin
(pDisp as IWebbrowser2).Navigate2('www.bstaint.net','','','','');
end;
end;
var
ShellWindows:TShellWindows;
IE:TInternetExplorer;
begin
ShellWindows:=TShellWindows.Create(self);
IE:=TInternetExplorer.Create(self);
for i:=0 to ShellWindows.Count-1 do
begin
IE.ConnectKind := ckRunningInstance;
//连接到一个IE实例
IE.ConnectTo(ShellWindows.Item(i) as IWebBrowser2);
IE.OnBeforeNavigate2 := Navigate2;
end;
ShellWindows.Disconnect;
end;
第三种方法无意中查到的,不过效果不错。
转载请注明: 本文《Delphi监控IE的几种方法》来源于bstaint的博客
没有评论:
发表评论