Hai DJ-SPM,
ich bin mir nicht sicher ob es daran liegt aber ich habe deinen IF-Block mal in BEGIN-END eingefügt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
reg : tregistry;
begin
if Checkbox1.Checked then
begin
try
reg := TRegistry.Create;
begin
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion', True) then
if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', True) then
Reg.WriteString('SPM', 'C:\Programme\SPM-APPS\bar.exe');
end;
finally
reg.Free;
end;
end
else
begin
try
reg := TRegistry.Create;
begin
Reg.RootKey := HKEY_LOCAL_MACHINE;
if (Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True)) then
begin
Reg.DeleteValue('SPM');
end;
end;
finally
reg.free;
end;
end;
Close;
end;
Ausser dem war hier noch ein Fehler.
Delphi-Quellcode:
ELSE try
reg := TRegistry.Create;
begin
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
Reg.DeleteValue('SPM');
Reg.Destroy; <-----------------------------
end;
finally
reg.free; <----------------------------
end;
Close;
end;
Du zerstörst einmal den REG mit Destroy und dannach gibst Du ihn noch einmal mit Free frei.
Stephan B.
"Lasst den Gänsen ihre Füßchen"