Besser ist aber das:
Delphi-Quellcode:
uses
Registry;
function GetWallpaper: String;
var
s: String;
regist: TRegistry;
begin
s := '';
// wir wollen nur lesen
regist:=TRegistry.Create(KEY_READ);
try
regist.RootKey:=HKEY_CURRENT_USER;
// nur weitermachen, wenn Schlüssel geöffnet werden konnte
// except hier unnötig
if regist.OpenKey('Control Panel\Desktop\', false) then
s := regist.ReadString('WallPaper');
finally // regist Objekt auf alle Fälle wieder freigeben
FreeAndNil(regist);
end;
result := s;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := GetWallpaper();
end;
Das except ist unnötig, OpenKey liefert True zurück, wenn es geklappt hat. Und in Helpliners Code wird bei einem Fehler das TRegistry Objekt nicht wieder freigegeben.