Autor Beitrag
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 21.08.06 17:20 
Ich möchte gerne mehrere Dateitypen mit meinem Programm verknüpfen. Ein Bemühen der Suchfunktion hat z.B. diese wunderschöne Klasse geliefert, die wahrscheinlich sehr gut funktioniert - mit Adminrechten.

Problem sind nun normale User. Ich habe da mal etwas in der Registry rumgesucht, und mit den Dingen verglichen, die so passieren, wenn ich mir die entsprechenden Dateitypen anschaue.

Scheinbar gibt es mehrere Orte, wo man die Typen registrieren kann, bzw. mehrere Einträge die das Öffnen eines Dateityps steuern. Einmal HKEY_CURRENT_USER/Software/Classes/.<MeineEndung>. Dort findet sich dann eine Beschreibung des Dateityps, und unter HKEY_CURRENT_USER/Software/Classes/<Beschreibung> finden sich dann /shell/open/command eine Anwendung. Das sieht genauso aus wie unter HKEY_CLASSES_ROOT auch, was obige Klasse schön erledigt. Das könnte man ja einfach anpassen (einfach bei Nicht-Admin-Rechten den Rootkey anders setzen), und gut ist.

Aber dummerweise stimmt die Anwendung dort nicht unbedingt mit der Anwendung überein, mit der der Typ bei Doppelklick geöffnet wird (zumindest bei mir, kann auch sein, dass meine Registry verkorkst ist...)

Also habe ich weitergesucht. Unter HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts findet sich noch mal eine Liste mit Dateiendungen. Und unter /.<meineEndung> findet sich ab und zu der Schlüssel Application mit der Anwendung, die passt. Dort findet sich z.B. auch die Öffnen-Mit-Liste. Manchmal findet man da statt "Application" eine "ProgID", die scheinbar zu der Beschreibung unter HKEY_CLASSES_ROOT passt.

Und jetzt weiß ich erstmal nicht mehr, wo ich nun was in die Registry schreiben muss, damit das ganze auch mit User-Rechten funktioniert. Und erst recht nicht, worauf ich beim schreiben achten muss, wenn einige Werte schon vorhanden sind (weil z.B. die Endung bereits registriert ist). Man will ja die Registry nicht unnötig zumüllen.
Und dann wäre da noch das Problem mit unterschiedlichen Windows-Versionen... :gruebel:

Also, wer kann mir helfen?

_________________
We are, we were and will not be.