Wenn du eine Dateierweiterung auf die herkömmliche Weise über die Registry registrierst, sollte beim nächsten Mal, wenn der Benutzer eine solche Datei anklickt, angeboten werden, dass es ein neues Programm dafür gibt.
Das ist eigentlich der vorgesehene Ablauf.
Nichtsdestotrotz registriert z.B. der Installer von Delphi die Erweiterungen auch unter Windows 10 fest, es muss also möglich sein.
Ich habe etwas in C++ auf der
MSDN Seite gefunden, weiß aber erstens nicht ob mir das überhaupt hilft und wie ich das in Delphi anwenden müsste.
In Delphi anwenden wäre einfach, du musst die Funktion, wenn sie nicht in Delphi selbst oder in der
JEDI API Library drin ist, deklarieren und dazu die Struktur, die du als Parameter brauchst.
Aber in der Doku steht doch auch gleich:
Zitat:
Starting in Windows 10, the OAIF_ALLOW_REGISTRATION, OAIF_FORCE_REGISTRATION, and OAIF_HIDE_REGISTRATION flags will be ignored by SHOpenWithDialog. The Open With dialog box can no longer be used to change the default program used to open a file extension. You can only use SHOpenWithDialog to open a single file.
Es wird dir also gar nichts bringen, da das der von dir schon aufgerufene Dialog ist, nur sauber aufgerufen.
Es kann durchaus sein, dass nur der Windows Explorer den Dialog noch mit dem Häkchen anzeigen darf. Es haben eben zu viele Programme hinter dem Rücken der Anwender Schindluder getrieben... das trifft dann natürlich auch alle, die vorher sauber den Benutzer gefragt haben... aber da ist für Microsoft dann immer die Frage was das kleinere Übel ist.