Robienie warunkowego autostartu

0

Mam problem dotyczacy autostartu zaleznego od wartosci w checkboxie (zaznaczony lub nie) i teraz problem jest nastepujacy:
Nie wiem jak dodac wartosc do rejestru z aktualna ścieżką i nazwa programu ale w taki sposób ze jak zaznacze chceckboxa to on w tym momecie doda ta wartosc a jak odznacze to ja usunie.
Czy moze mi ktoś ewentualnie skorygować niedziałajacy kod:

if Checkbox1.checked='true' then
Reg.RootKey := HKEY_LOCAL_MACHINE; //ustawienie glownej galezi
reg.Reg.Openkey('Software\Microsoft\Windows\Current Version\run',True);
reg.WriteString('Internet Time'(PChar(ExtractFileName(Application.ExeName)));
reg.free;

To jest dopiero jak widać dodawanie tej wartości ale i tak juz ten kod nie działa ...

Za pomoc z gory dziękuje.

0

Cze!!! :-)
umiesc ten kodzik w OnClick w CheckBox:

==============================
if checkbox1.Checked then
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True);
Reg.WriteString('twoja nazwa', (ParamStr(0)));
Reg.CloseKey;
Reg.Free;
end else
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true);
Reg.DeleteValue('twoja nazwa');
Reg.CloseKey;
Reg.Free;
end;

pozdrawiam!! [browar]

0

Ja bym napisał to tak.

[code]Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True);

If checkbox1.Checked then Reg.WriteString('Internet Time', (ParamStr(0))) else Reg.DeleteValue('Internet Time');
Reg.CloseKey;
Reg.Free; [/code]

0

Ja bym napisał to tak.....

To jest właśnie słynna optymalizacja kodu. Prościej, szybciej, i plik skompilowany będzie mniejszy. Zwracajcie na to uwagę

0

Dziękuje bardzo wszystkim za pomoc, działa idealnie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1