Moin HomerGER,
irgendwie seh' ich im Moment keinen unmittelbaren Grund, warum das schiefgehen sollte.
Das einzige was mir auffällt:
Du benutzt RegCloseKey auch dann, wenn der Wert von key_hk nicht initialisiert wurde, weil der Aufruf von RegOpenKeyEx schiefgegangen ist.
Zudem stellt try/finally den Resourcenschutzblock dar, der für den Fall, dass RegOpenKeyEx nicht geklappt hat nicht benötigt wird.
Probier mal diese Variante:
Delphi-Quellcode:
Function Reg_Lesen_RYU(input_r : reg1_r) : reg_wert_r;
var
key_hk : HKEY;
begin
if (RegOpenKeyEx(input_r.s1, PChar(input_r.s2), 0, KEY_READ, key_hk) = ERROR_SUCCESS) then
begin
try
Result.s1 := 'offen';
Result.s2 := '';
finally
RegCloseKey(key_hk);
end;
end
else
begin
Result.s1 := 'zu';
Result.s2 := '';
end;
end;