Problem z rejestrem

0

Mam taką otoprocedurę:

procedure TUstawienia.FormCreate(Sender: TObject);
var
Reg : TRegistry;
begin
  Reg := TRegistry.Create;   // stworz zmienna
  Reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows\CurrentVersion\Run');
  if reg.ValueExists('Przypominajka') then
   begin
      Edit2.Text:= Reg.ReadString('Przypominajka');
      CheckBox1.Checked:= true;
      Reg.CloseKey; //zamknij klucz
      Reg.Free
   end
   else
   begin
      CheckBox1.Checked:= false;
      reg.CloseKey;
      reg.Free;
   end;

end;

No i wszysstko jest ok tylko, że kiedy procedura odczytuje wartość dodaje do niej na końcu i początku: "
Może to pomoże , jeśli powiem, że chodzi o odczytywanie ścieżki do pliku uruchamianego przy starcie systemu

[cya] Dzienx

0

a gdzieś podział deklarację Root Key?

0

dodałem rootkey
ale nadal jest tak samo

0

Po Reg := TRegistry.Create; dodaj coś takiego:
Reg.RootKey := HKEY CURRENT USER;
To powinno pójść :)

0

to chodzi tylko, że zamiast odczytywać i nic więcej nie robić procedura zmienia wartość w rejestrze np: przed wykonaniem procedury wartość w rejestrze to:
"D\cos\blabla\Przypominajka.exe"
a po wykonaniu:
""D\cos\blabla\Przypominajka.exe""
Im więcej razy procedura jest wykonywana tym więcej jest "
Co zrobić żeby wartość zostawała nienaruszona?

0

To na pewno nie tutaj zrobiłeś błąd tylko w miejscu w którym dodajesz to do rejestru, pokaż więcej kodu związanego z rejestrem z tego programu.

0

Już sobie poradziłem wystarczylo dodać jedną instrukcję warunkową w procedurze i jest ok
Dziwne według mnie jest to, że jeżeli damy
CheckBox.Checked:= true (lub false))
to tak jakby użytkownik kliknąłw niego

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