Danke, den hätte ich später auch noch gebraucht. In dem Aufruf ist irgendwo noch ein Fehler drinnen, da es weiterhin nicht klappt. Ich will es anhand eines "echten" Beispiels erläutern:
Angenommen, man möchte ASX auf ein Programm zuweisen (meins
).
Dann benötige ich einen Code, wie diesen, damit mein Programm auch noch andere Formate verwalten kann:
Delphi-Quellcode:
ExtDes := LowerCase(Ext); // Ext = .asx ; Diese Zuweisung macht wenig Sinn, aber es ist auch nur zu Testzwecken
FileDes := ExtDes; // auch sinnlos...
Prg := ExtractFilePath(Application.ExeName) + 'DarkPlayerII.exe';
Nun zur eigentlichen Registration:
Delphi-Quellcode:
if InstallExt(Ext, ExtDes, FileDes, Prg, '"%1"', Ico , 0) then // Ico = Pfad+Dateiname
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil)
else
MsgBox(...);
In der Registry steht daraufhin im Schlüssel .asx der Eintrag DefaultIcon, welcher den Pfad zum Icon enthält.
Unter .asx\Shell\Open\Command steht nun im Schlüssel Standard:
Zitat:
"E:\Eigene Projekte\DarkPlayer New\Tools\FileManager\DarkPlayerII.exe" ""%1""
In dem eben genannten Schlüssel muss irgendein Fehler liegen. Sind dort vlt. zwei Anführungszeichen bei %1 zu viel ?