Rejestr i CheckedBox

0

Witam wszystkich

pisałem na ten temat ale odpowiedzi konkretnej niedostał postanowiłem żucic to wszystko na jakieś 3
miechy. Teraz się wkużyłem i postaowiłem sprubowa sam i cud juz wiem jak to sie robi z komponentem
CheckedBox, ale mam zrowy i to juz bardziej poważny problem bo juz raz namieszałem i program usuną
mi cały kucz z podkluczami w rejestrze chdzi mi o startowanie z windowsem
to jest mój kod

var
Reg : TRegistry; * deklaruj zmienna dla klasy
begin
Reg := TRegistry.Create; * stworz zmienna
try
Reg.OpenKey('Software\Lan Tlen', True); * utworz katalog

if CheckBox1.Checked = True then begin
Reg.WriteBool('AutoSave',True);
end;                                                          * Checkbox1 jest to jakaś tam funkca z tym nie mam 

problemu
if CheckBox1.Checked = False then begin
Reg.WriteBool('AutoSave',False);
end;

  • i tu jz mam schody czy to jest dobrze napisane, prosze o poprawienie mnie jeśli ś błedy w tym kodzie
    if CheckBox2.Checked = True then begin
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); *Tworzy klucz
    Reg.WriteString('Lan','c:\Program Files\Lan Tlen\projekt.exe');
    end;
    if CheckBox2.Checked = False then begin
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); * kasuje klucz
    Reg.DeleteKey('Lan');
    end;
    finally
    Reg.Free; * zwolnij klase
    end;
    Close;
    end;

wielkie dzieki
--&gt &gt ( DELPHI 5 ) &lt &lt
&gt &gt &gt DELPHI 6 &lt &lt &lt

0

klaster napisał:

var
Reg : TRegistry; * deklaruj zmienna dla klasy
begin
Reg := TRegistry.Create; * stworz zmienna
try
Reg.OpenKey('Software\Lan Tlen', True); * utworz katalog
if CheckBox1.Checked then
Reg.WriteBool('AutoSave',True)
else * Checkbox1 jest to jakaś tam funkca z tym nie mam problemu
Reg.WriteBool('AutoSave',False);

  • i tu jz mam schody czy to jest dobrze napisane, prosze o poprawienie mnie jeśli ś błedy w tym kodzie
    if CheckBox2.Checked then
    begin
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); *Tworzy klucz
    Reg.WriteString('Lan','c:\Program Files\Lan Tlen\projekt.exe');
    Reg.CloseKey; {Przydałoby się zamknąć}
    end
    else
    begin
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Lan', True); * kasuje klucz (ale otworzyć trzeba ten klucz, który ma być kasowany)
    Reg.DeleteKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Lan');{Podawaj dokładną ścieżkę}
    {Tu już nie ma co zamykać :) }
    end;
    finally
    Reg.Free; * zwolnij klase
    end;
    Close;
    end;

--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

dobra
a czy odczyt ma dobrze czy źle bo nie chce mi załadować klucza

var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.OpenKey('Software\Lan', False); // otworz klucz

CheckBox1.Checked := Reg.ReadBool('AutoSave');
CheckBox3.Checked := Reg.ReadBool('MinializeTray');

Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run', False);
CheckBox2.Checked := Reg.ReadBool('Lanspeed');

finally
Reg.Free;
end;
end;
--&gt &gt ( DELPHI 5 ) &lt &lt
&gt &gt &gt DELPHI 6 &lt &lt &lt

0

hmm... Nie jestem pewien co tu jest źle, ale może zmodyfikuj to tak:

var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
try
if not Reg.OpenKey('Software\Lan', False) then ShowMessag('Ups, nie ma klucza');
CheckBox1.Checked := Reg.ReadBool('AutoSave');
CheckBox3.Checked := Reg.ReadBool('MinializeTray');
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False);
CheckBox2.Checked := Reg.ReadBool('Lanspeed');
finally
Reg.Free;
end;
end;
--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

no dobra ale niechce mi odczytywać czy to jest dobrze

Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', FALSE);
CheckBox2.Checked := Reg.ReadBool('Lan');

bo nie działa
--&gt &gt ( DELPHI 5 ) &lt &lt
&gt &gt &gt DELPHI 6 &lt &lt &lt

0

klaster napisał:
no dobra ale niechce mi odczytywać czy to jest dobrze
&gt
&gt
Reg.RootKey := HKEY_LOCAL_MACHINE;
&gt
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', FALSE);
&gt
CheckBox2.Checked := Reg.ReadBool('Lan');
&gt
&gt
bo nie działa
&gt

Nie powinno tu być Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', TRUE);
tak mi sie tylko wydaje że tru powinno być
--Pozdrowienia {hello}
Waldi Koronowo
[email protected]
Zdarza sie że pisze e przed i nie zwracajcie uwagi na to:D

0

Waldi napisał:
Nie powinno tu być Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', TRUE);

Nie. True tworzy w razie potrzeby. My musimy mieć już utworzony.

klaster: Tam jest w końcu Lan czy Lanspeed? Sprawdź najpierw w rejsetrze jaki masz utworzony klucz, a dopiero potem próbuj odczytać. Może jednak trzeba spróbować zamknąć klucz porzed otwarciem nowego?--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

zapis na
'Lan'
a oczyt na
'Lan'
i ciągle nie chce te same ścieżki do run i nic ja juz tego nierozumiem
dobra to wszystko tak wygląda:

procedure TOpcje.SaveClick(Sender: TObject);
var
Reg : TRegistry; * deklaruj zmienna dla klasy
begin
Reg := TRegistry.Create; * stworz zmienna
try
Reg.OpenKey('Software\Lan Speed', True); * utworz katalog
if CheckBox1.Checked then
Reg.WriteBool('AutoSave',True)
else
Reg.WriteBool('AutoSave',False);

if CheckBox3.Checked then
Reg.WriteBool('MinializeTray',True)
else
Reg.WriteBool('MinializeTray',False);

if CheckBox2.Checked then
begin
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); *Tworzy klucz
Reg.WriteString('Lan','c:\Program Files\Lan Speed\LanSpeed.exe');
Reg.CloseKey; {Przydałoby się zamknąć}
end
else
begin
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); * kasuje klucz (ale otworzyć
trzeba ten klucz, który ma być kasowany)
Reg.DeleteKey('Lan');{Podawaj dokładną ścieżkę}

end;
finally
Reg.Free; * zwolnij klase
end;
Close;
end;

procedure TOpcje.FormCreate(Sender: TObject);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
try
if not Reg.OpenKey('Software\Lan Speed', False) then ShowMessage('Ups, nie ma klucza');
CheckBox1.Checked := Reg.ReadBool('AutoSave');
CheckBox3.Checked := Reg.ReadBool('MinializeTray');
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False);
CheckBox2.Checked := Reg.ReadBool('Lan');
finally
Reg.Free;
end;
end;

Jeśli ktoś wie co jest nie tak to pliss bo juz siewkuzam na maxa
--&gt &gt ( DELPHI 5 ) &lt &lt
&gt &gt &gt DELPHI 6 &lt &lt &lt

0

klaster napisał:
procedure TOpcje.SaveClick(Sender: TObject);
var
Reg : TRegistry; * deklaruj zmienna dla klasy
begin
Reg := TRegistry.Create; * stworz zmienna
try
Reg.OpenKey('Software\Lan Speed', True); * utworz katalog
if CheckBox1.Checked then
Reg.WriteBool('AutoSave',True)
else
Reg.WriteBool('AutoSave',False);
if CheckBox3.Checked then
Reg.WriteBool('MinializeTray',True)
else
Reg.WriteBool('MinializeTray',False);
Reg.CloseKey;*Żeby zapisało zmiany
if CheckBox2.Checked then
begin
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); *Tworzy klucz
Reg.WriteString('Lan','c:\Program Files\Lan Speed\LanSpeed.exe');
Reg.CloseKey; {Przydałoby się zamknąć}
end
else
begin
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); * kasuje klucz (ale otworzyć trzeba ten klucz, który ma być kasowany)
Reg.DeleteKey('Lan');{Podawaj dokładną ścieżkę}
end;
finally
Reg.Free; // zwolnij klase
end;
Close;
end;

procedure TOpcje.FormCreate(Sender: TObject);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
try
if not Reg.OpenKey('Software\Lan Speed', False) then ShowMessage('Ups, nie ma klucza');
CheckBox1.Checked := Reg.ReadBool('AutoSave');
CheckBox3.Checked := Reg.ReadBool('MinializeTray');
{Nie jestem pewien, czy tu nie należałoby zamknąć. Zobacz, które wartości poprawnie odczytuje, a które nie. Jeżeli tylko CheckBox2 źle to walnij CloseKey}
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False);
CheckBox2.Checked := Reg.ReadBool('Lan');
finally
Reg.Free;
end;
end;
--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

wkleiłem tak jak jest poprawione wstawiłem w odzcycie maknięcie kluczy 1i3 ale dlalej nie chce
odczytywać tej wartości 2.

czytałem post rejest xp i powiem tyle spacji nie mam jak widzicie a i adminem jestem i kucze czemu nie chce działć

Ludzie co jest do cholery czemu to nie chce odczytać tej pie........ i poj...... wartości.
Jeszcze troche i wywiezom mnie do wariatkowa.
--&gt &gt ( DELPHI 5 ) &lt &lt
&gt &gt &gt DELPHI 6 &lt &lt &lt

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