Hallo Trouble_Maker,
bin gerade über deinen Quelltext geflogen *haberichtigangstbekommen*.
Deinen Schlüssel mit dem Datenwert 'Autostart' wirst Du nie schreiben, da Du ihn abhängig von "CheckBox1.checked" machst. Dieser wird aber in "TForm1.FormCreate" nur gesetzt, wenn es ihn gibt. Der Amerikaner sagt, glaube ich, Catch 22 dazu. Du drehst dich im Keis.
Du solltest besser prüfen, ob der Autostart Schlüssel unter 'Software\Microsoft\Windows\CurrentVersion\Run' existert und dann deine Hacken setzen. Dann würdest Du auch bei Programmstart (von Hand) mitbekommen, daß Dir einer den Schlüssel gekegelt hat.
bye
[Nachtrag] so würde es auch gehen[/Nachtrag]
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
SetAutoStart('DBSysCon', ParamStr(0), False, False);
CheckBox1.Checked := False;
reg.WriteInteger('Autostart', 1); // mit öffnen und schließen versteht sich
else
begin
SetAutoStart('DBSysCon', ParamStr(0), True, False);
CheckBox1.Checked := True;
Reg.DeleteValue('Autostart'); // mit öffnen und schließen versteht sich
end;
end;
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----