获得所有  ie 的 iwebbrowser2 接口

用delphi如何获取IE当前地址栏的URL

 (2007-11-26 21:29:00)
   
 以下代码保存所有当前打开的网址:  
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,  
      StdCtrls,   shellapi,   ddeman,   shdocvw,registry;  
   
  type  
      TForm1   =   class(TForm)  
          ListBox1:   TListBox;  
          Button1:   TButton;  
          Button2:   TButton;  
          procedure   ListBox1DblClick(Sender:   TObject);  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
          procedure   FormShow(Sender:   TObject);  
      private  
          {   Private   declarations   }  
          IEXPLORE:string;  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.DFM}  
   
   
  procedure   TForm1.ListBox1DblClick(Sender:   TObject);  
  begin  
      WinExec(PChar(IEXPLORE+'   "'+listbox1.items[listbox1.itemindex]+'"'),SW_NORMAL);  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  const  
      maxx   =   30;  
  var  
      ShellWindow:   IShellWindows;  
      nCount:   integer;  
      spDisp:   IDispatch;  
      i:   integer;  
      vi:   OleVariant;  
      IE1:   IWebBrowser2;  
  begin  
      listbox1.clear;  
      ShellWindow   :=   CoShellWindows.Create;  
      nCount   :=   ShellWindow.Count;  
      for   i   :=   0   to   nCount   -   1   do  
      begin  
          vi   :=   i;  
          try  
              spDisp   :=   Shellwindow.item(vi);  
          except  
              exit  
          end;  
          if   (spDisp   <>   nil)   then  
          begin  
              try  
                  spDisp.QueryInterface(iWebBrowser2,   IE1);  
              except  
                  on   EAccessViolation   do  
                  begin  
                      exit  
                  end;  
              end;  
              if   (IE1   <>   nil)   then  
              begin  
                  listbox1.items.add(IE1.Get_LocationURL());  
              end;  
          end;  
      end;  
      deletefile(extractfilepath(paramstr(0))   +   'Address.d'   +   inttostr(maxx));  
      for   i   :=   maxx   -   1   downto   0   do  
          renamefile(extractfilepath(paramstr(0))   +   'Address.d'   +   format('%.2d',   [i]),  'Address.d'   +   format('%.2d',   [i   +   1]));  
      listbox1.items.savetofile(extractfilepath(paramstr(0))   +   'Address.d00');  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  var  
      i:   integer;  
  begin  
      for   i   :=   0   to   listbox1.items.count   -   1   do  
      begin  
          WinExec(PChar(IEXPLORE+'   "'+listbox1.items[i]+'"'),SW_NORMAL);  
      end;  
  end;  
   
  procedure   TForm1.FormShow(Sender:   TObject);  
  var  
      s:   string;  
      reg:TRegistry;  
  begin  
      s   :=   extractfilepath(paramstr(0))   +   'Address.d00';  
      if   fileexists(s)   then  
          listbox1.items.loadfromfile(s);  
      reg:=TRegistry.create;  
      reg.rootkey:=HKEY_LOCAL_MACHINE;  
      reg.openkey('Software\Microsoft\Windows\CurrentVersion\App   Paths\IEXPLORE.EXE',true);  
      IEXPLORE:=reg.ReadString('');  
      reg.closekey;  
      reg.free;  
  end;  
   
  end.  

0

0

 
阅读(1027)┊ 评论 (0)收藏(0) 转载(0) ┊ 喜欢 打印举报