Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#16

Re: Prüfen, ob RegistryKey vorhanden ist?

  Alt 1. Mai 2010, 13:31
Kann es sein, dass die ganzen Ratschläge von oben wieder über Bord geworfen wurden? Ich versuch es mal aus der hohlen Hand:
Delphi-Quellcode:
function RegCheck():Boolean;
begin
  result:= false;
  reg:= TRegistry.Create(KEY_READ); //nur zum Lesen öffnen <-- fehlte
  try
    reg.RootKey:= HKEY_Local_Machine;
    if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\',false) then
      try
        if reg.ValueExists('KeyName') then
          begin
            Name:= ('HKEY_Local_Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
            result:= True;
            x:= 1;
          end;
      finally
        Reg.CloseKey; //das hab ich in den oberen Codes komplett vermisst
      end;
    reg.RootKey:= HKEY_Current_User;
    if reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False) then
     try
       if reg.ValueExists('KeyName') then
          begin
            Name:= ('HKEY_Current_User\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
            result:= True;
            x:= 2;
          end;
     finally
       Reg.CloseKey; //s.o.
     end;
  finally
     reg.Free;
  end;
end;
Außerdem würde ich nicht auf globale Variablen zugreifen wollen, sondern x und Name eher als var-Parameter übergeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat