Hast du dich denn schon mal mit diesem Thema beschäftigt?
1. Extensions (".php" meinetwegen) verweisen üblicherweise auf einen anderen internen Schlüssel ("PHPFile" von mir aus), dem die eigentlichen Shell-Einträge untergeordnet sind.
2. Beim Prüfen ob dein Programm mit einer Endung verknüpft ist, musst du die Registry weder mit Vollzugriff öffnen:
Zitat:
Reg := TRegistry.Create;
noch den Schlüssel erzeugen
Zitat:
OpenKey(Extension, True);
3. Wenn der User eines NT-Systems (NT, 2000, XP) nicht über die ausreichende Berechtigung verfügt, dann klappt der Zugriff überhaupt nicht. Das Schreiben naturgemäß nicht. Das Lesen in deinem Fall durch den Vollzugriff auch nicht.
Generell ein bisschen Lesestoff zum Thema:
Dateityp Registry