Eigentlich habe ich das schon oft gemacht, nur komischerweise funktioniert jetzt etwas nicht mehr.
Die Dateiendung wird korrekt registriert, aber wenn ich eine Datei mit Endung "XYZ" schließlich doppelklicke, wird kein Parameter übergeben (%1).
ParamCount ist immer 1 und nicht, wie erwünscht, 2.
Ich nutze folgenden Code von Meflin.
Delphi-Quellcode:
function InstallExt(Extension, ExtDescription, FileDescription, OpenWith, ParamString: string; IconIndex: Integer;
ExtVerb: string = 'Open'): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(Extension, True);
WriteString('', ExtDescription);
OpenKey('\' + ExtDescription, True);
WriteString('', FileDescription);
OpenKey('DefaultIcon', True);
WriteString('', OpenWith + ',' + IntToStr(IconIndex));
OpenKey('\' + ExtDescription + '\Shell\' + ExtVerb + '\Command', True);
WriteString('', '"' + OpenWith + '" "' + ParamString + '"');
end;
Result := True;
except
Result := False;
end;
Reg.Free;
end;