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;
楼上的错了,人家要的是收藏夹,您这是IE地址输入框的历史记录......当前登陆用户的收藏夹默认位置在:C:\Documents and Settings\登陆用户名\Favorites 下面,那些快捷方式就是,直接读取就可以了。
好像还有COM接口可以用的,《Delphi深度历险》还是别的什么书里见过,因为用不上就没太在意。
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;
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;
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;