Laut
MSDN gibt RegOpenKeyEx (wird von TRegistry.OpenKey verwendet) einen Fehler direkt im Ergebnis zurück und nicht über GetLastError. GetLastError bezieht sich also auf eine Aktion vor dem Aufruf von RegOpenKey, deswegen auch die Erfolgsmeldung.
Leider prüft TRegistry das Ergebnis des Aufrufs nur auf ERROR_SUCCESS, alles andere fällt unter den Tisch. Genaueres findet man also nur heraus, indem man direkt auf
API-Ebene auf die Registry zugreift.
RegResult := RegOpenKeyEx(HKEY_CURRENT_USER,'Software\SPP',0,KEY_ALL_ACCESS,reghandle);
Gruß, teebee