请问:如何读取IE收藏夹的内容?哪位有详细点的源码?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Registry;type
      TForm1 = class(TForm)
        Form1: TForm;
        ListBox1: TListBox;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
     myreg:Tregistry;
     myi:integer;
     myl:TStringList;
    begin
     listbox1.Clear;
     myreg:=Tregistry.create;
     myl:=TstringList.Create;
     myreg.rootkey:=hkey_current_user;
     myreg.openkey('Software\Microsoft\Internet Explorer\TypedURLs',true);
     myreg.GetValueNames(myl);
     for myi:=0 to myl.Count-1 do
      listbox1.Items.Add(myreg.ReadString(myl.Strings[myi]));
     myreg.closekey;
     myreg.Free;
     myl.Free;
    end;
      

  2.   

    楼上的错了,人家要的是收藏夹,您这是IE地址输入框的历史记录......当前登陆用户的收藏夹默认位置在:C:\Documents and Settings\登陆用户名\Favorites 下面,那些快捷方式就是,直接读取就可以了。
      

  3.   

    好像还有COM接口可以用的,《Delphi深度历险》还是别的什么书里见过,因为用不上就没太在意。
      

  4.   

    function GetShellFolderPath(FolderName: Widestring): string;
    const
      REG_PATH = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders';
    var
      Reg: TRegistry;
    begin
      FolderName := 'Favorites';
      Result := '';
      Reg := TRegistry.Create(KEY_READ);
      with Reg do
      try
        Rootkey := HKEY_CURRENT_USER;
        OpenKey(REG_PATH, False);
        if (ValueExists(FolderName)) and not (length(trim(ReadString(FolderName))) = 0) then
          Result := ReadString(FolderName);
      finally
        CloseKey;
        Free;
      end;end;