Hallo,
ich habe eine Problem dabei, Daten aus der Registry auszulesen. Im folgenden Code lande ich nach der Zeile regist.OpenKey immer im Else Teil:
Code:
function TRegistryEditor.ReadStringLocalMachine(keyname: string) : string;
var regist: TRegistry;
var resultString: string;
begin
regist := TRegistry.Create;
Try
regist.RootKey := HKEY_LOCAL_MACHINE;
if regist.OpenKey('SOFTWARE\XYZ\Info', False) then
begin
resultString := regist.ReadString(keyname);
end
else
begin
resultString := '';
end;
Finally
regist.free;
end;
Result := resultString;
end;
Ich hatte das Problem als ich aus HKEY_CURRENT_USER ausgelesen habe noch nicht. In beiden Fälle existiert der Registryschlüssel und die Werte, die ich auslesen möchte existieren auch. Es sind auch immer Strings, die eingetragen sind. Ersetze ich HKEY_LOCAL_MACHINE durch HKEY_CURRENT_USER funktioniert auch wieder alles.
Mit VBA und über die command line komme ich auch auf den Key drauf. Die Probleme existieren sowohl unter WinXP als auch unter Win7 und ich nutze Delphi 2006.
Weiß jemand wo das Problem liegt?
Viele Grüße
Johannes