So geht's mit der Fehlerbehandlung:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Dialogs, Registry, SysUtils;
implementation
function RegCheck(): Boolean;
var
reg: TRegistry;
Names:
string;
x: Integer;
begin
result := false;
reg := TRegistry.Create(Key_Read);
try
reg.RootKey := (HKEY_LOCAL_MACHINE);
try
if reg.OpenKey('
\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False)
then
begin
if reg.ValueExists('
KeyName')
then
begin
Names := ('
HKEY_Local_Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
result := True;
x := 1;
end;
end
else
ShowMessage(SysErrorMessage(GetLastError));
finally
reg.CloseKey;
end;
reg.RootKey := HKEY_Current_User;
try
if reg.OpenKey('
\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\', False)
then
begin
if reg.ValueExists('
KeyName')
then
begin
Names := ('
HKEY_Current_User\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\KeyName');
result := True;
x := 2;
end;
end
else
ShowMessage(SysErrorMessage(GetLastError));
finally
Reg.CloseKey;
end;
finally
reg.Free;
end;
end;
end.
Und hör bitte auf von Schleifen zu reden. In dem ganzen Code gibt es keine einzige Schleife. if-Bedingungen sind Verzweigungen.