Dann machen wir es doch mal richtig, dann bekommt man auch einigermaßen gescheite Fehlermeldungen:
Delphi-Quellcode:
uses
Registry;
const
REGPATH = '
\Software\Microsoft\Windows\Shell\Bags\1\Desktop';
FILENAME = '
d:\test.txt';
procedure SaveDesktopIconsFromRegistry(
const FileName:
string);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
if Reg.KeyExists(REGPATH)
then
begin
if not Reg.SaveKey(REGPATH, FileName)
then
RaiseLastOSError;
end
else
RaiseLastOSError;
finally
Reg.Free;
end;
end;
procedure TForm13.Button1Click(Sender: TObject);
begin
if FileExists(FILENAME)
then
begin
if not DeleteFile(FILENAME)
then
ShowMessage(SysErrorMessage(GetLastError));
end;
try
SaveDesktopIconsFromRegistry(FILENAME);
except
on E:
Exception do
ShowMessage(E.
Message);
end;
end;
Fehlermeldung lautet: "Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen."
Laut Hilfe öffnet und schließt
SaveKey den Schlüssel. Ein
OpenKey und
CloseKey ist also überflüssig.