Delphi监控IE的几种方法

最近研究研究这个,总结下面三种方法:

  • 修改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的博客

没有评论: