Jak sprawdzić czy istnieje Nazwa wartości rejestru z brakiem Danych wartości ?
Np.:
Klucz: HKEY_LOCAL_MACHINE\Test1\Test2
Nazwa wartości rejestru: Test
Dane wartości rejestru: Brak
Jak sprawdzić czy istnieje Nazwa wartości rejestru z brakiem Danych wartości ?
Np.:
Klucz: HKEY_LOCAL_MACHINE\Test1\Test2
Nazwa wartości rejestru: Test
Dane wartości rejestru: Brak
[code]TRegistry *Rejestr = new TRegistry;
Rejestr->RootKey = HKEY_LOCAL_MACHINE;
Rejestr->OpenKey("Test1\\Test2", false);
bool exist = (Rejestr->ValueExists("Test"));
Rejestr->CloseKey();
delete Rejestr;[/code]
Sorry, że w C++. Powinno być jasne
Dziękuję !!!
Pochwalony!
Nie wiem czy Ci o to chodzi (ale przynajmniej sobie posty nabiję :P ):
function CheckRegistryKey(KEy: String): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.KeyExists(Key) then
Result := True else
Result := False;
end;
Aby korzystać z funkcji dodaj do sekcji uses moduł Registry. Napisz np.
if CheckRegistryKey('Software\Windows') then ShowMessage('działa');
Mam nadzieję że Ci o to chodziło :)
function CheckRegistryKey(KEy: String): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.KeyExists(Key) then
Result := True else
Result := False;
end;
przepraszam że się wtrącam, ale mam takie przyzwyczajenia z języków skryptowych
żeby skracać kod i mimo że nie ma to chyba żadnego znaczenia to tu aż się
prosi żeby zapisać:
Result := Reg.KeyExists(Key);
(...) to tu aż się prosi żeby zapisać:
Result := Reg.KeyExists(Key);
Wiem, że to nie mnie się tyczyło, ale: "a co ja napisałem??".
czy linijka
[code]bool exist = Rejestr->ValueExists("Test");[/code]
to nie to samo? (w sumie nie, bo ja sprawdzam, czy istnieje wartość (tak jak tego chciał Marco_99), a Twoja linijka sprawdza istnienie całego klucza)
A tak w ogóle to Marco_99 już podziękował za odpowiedź, a KiteK musiał wtrącić swoje 3 grosze i napisać kod, który robi dokładnie to samo (tylko mniej optymalnie, jak zauważył piechnat).
Sorry za te wąty, ale mnie poniosło.