Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

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

Re: Korrekt Fehler bei Zugriff auf Registry abfangen

  Alt 19. Nov 2007, 22:40
Moin Wolle,

was an dem Code

Delphi-Quellcode:
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
    Reg.WriteString('TempCleaner','"' + ParamStr(0) + '" ' + ParamStr(1) + ' "' + ParamStr(2) + '"');
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;
jeden Fall noch verbesserungswürdig ist:
OpenKey ist eine Funktion, die einem den Erfolg durch ihr Ergebnis mitteilt.
Soll heissen: Wenn OpenKey fehlgeschlagen ist, machen die Ausführung von WriteString und CloseKey keinen Sinn.

Delphi-Quellcode:
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True) then begin
      try
        Reg.WriteString('TempCleaner','"' + ParamStr(0) + '" ' + ParamStr(1) + ' "' + ParamStr(2) + '"');
      finally
        Reg.CloseKey;
      end;
    end;
  finally
    Reg.Free;
  end;
end;
Der weitere Try/finally-Block (er kann auch das begin/end ersetzen) sichert dann noch das schliessen des Keys ab, falls WriteString fehlschlägt.
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