// Wenn man im IE die Combobox mit den Adressen aufklappt, kann man bisherig
// besuchte Seiten erkennen. Um hier gezielt Einträge zu löschen, kann man den
// folgenden Code benutzen. Man setzt eine Listbox und einen Button auf ein
// Formular. Beim Klick auf den Button werden die URLs in der Listbox angezeigt.
// Durch Doppelklick auf eine ULR in der Box, kann diese gelöscht werden.
// Die Änderung wird erst beim nächsten Start des IE wirksam.
// Querverweise:
Benutzungsspuren beseitigen

// Getestet mit D4 unter WinME bei IE 5.5

uses Registry; 
 
const 
  leer = '-- nichts gefunden --'; 
 
var 
  sl: TStringlist; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  sl := TStringlist.create; 
  listbox1.multiselect := false; 
end; 
 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
  sl.Free; 
end; 
 
function History(ts: TStrings): boolean; 
var 
  Reg: TRegistry; 
  x: integer; 
  s: string; 
begin 
  result := false; 
  Reg := TRegistry.Create; 
  try 
    x := 1; 
    ts.clear; 
    sl.clear; 
    Reg.RootKey := HKEY_CURRENT_USER; 
    if Reg.OpenKey('\Software\Microsoft\Internet Explorer\TypedUrls', True) 
      then begin 
      repeat 
        sl.add('url' + inttostr(x)); 
        s := Reg.readstring(sl[x - 1]); 
        if s = '' then break; 
        ts.add(s); 
        inc(x); 
      until false; 
      if ts.count = 0 then begin 
        ts.add(leer); 
        sl.clear; 
      end; 
      result := true; 
    end; 
  finally 
    Reg.CloseKey; 
    Reg.Free; 
  end; 
end; 
 
function loeschen(i: integer; lb: TListbox): boolean; 
var 
  Reg: TRegistry; 
  x: integer; 
begin 
  result := false; 
  Reg := TRegistry.Create; 
  try 
    Reg.RootKey := HKEY_CURRENT_USER; 
    if Reg.OpenKey('\Software\Microsoft\Internet Explorer\TypedUrls', false) 
      then begin 
      Reg.deletevalue('url' + inttostr(i + 1)); 
      sl.delete(i); 
      for x := i + 1 to sl.count do 
        Reg.renamevalue('url' + inttostr(x + 1), 'url' + inttostr(x)); 
      lb.Items.delete(i); 
      result := true; 
    end; 
  finally 
    Reg.CloseKey; 
    Reg.Free; 
  end; 
end; 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if not 
    history(listbox1.items) 
    then showmessage('FEHLER'); 
end; 
 
procedure TForm1.ListBox1DblClick(Sender: TObject); 
begin 
  if listbox1.items[listbox1.itemindex] <> leer then begin 
    if Application.MessageBox(PChar('Eintrag'#13 + 
      listbox1.items[listbox1.itemindex] + #13'wirklich löschen?'), 
      'IE-Historie', MB_OKCANCEL + MB_DEFBUTTON2 + MB_ICONQUESTION) 
      = IDOK then if not loeschen(listbox1.itemindex, listbox1) 
      then showmessage('FEHLER'); 
  end; 
end;



Zugriffe seit 6.9.2001 auf Delphi-Ecke