Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: HKEY_LOCAL_MACHINE als User lesen

  Alt 5. Sep 2009, 13:07
Moin Thomas,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Ich habe den Code mal etwas überarbeitet:


Delphi-Quellcode:
var
  regist : TRegistry;

begin
  regist:= TRegistry.Create;
  try
    regist.RootKey:= HKEY_LOCAL_MACHINE;
    if regist.OpenKeyReadOnly(registPfad+'\Datenbank') then begin
      try
        if length(regist.ReadString('Pfad_DB')) = 0 then begin
          MessageDlg('HKEY_LOCAL_MACHINE Lesefehler! Die Default Einstellungen werden gesetzt.',mtError,[mbOk],0);
          PfadDB:= defaultDB;
        end else begin
          PfadDB:= regist.ReadString('Pfad_DB');
        end;
      finally
        regist.CloseKey;
      end;
    end else begin
      ShowMessage('OpenKey fehlgeschlagen');
    end;
    ShowMessage(PfadDB);
  finally
    regist.Free;
  end;
end;
Man sollte immer sicherstellen, dass belegte Resourcen auch wieder freigegeben werden, deshalb try/finally beim Create und OpenKey.
Da OpenKeyReadOnly den Erfolg meldet (ich hoffe auch in D4 ), sollte man dass auch benutzen.

Wenn es fehlschlägt, dann prüf' mal was passiert, wenn Du den \ am Beginn des Pfades weglässt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat