Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#1

Vorhandene Dateiendungen auf mein Programm registrieren

  Alt 22. Aug 2006, 15:01
Zuerst: Bitte nicht hauen. Zu diesem Thema gibt es schon eine Menge Themen, wovon ich viele gelesen habe, und das eine oder andere auch nachvollziehen kann, und zur Not Copy&Paste fast reichen würde. Im DF habe ich die Frage auch schon gestellt - bisher erfolglos.

Es geht mal wieder darum, einen Dateityp auf ein eigenes Programm zu registrieren. Dabei ist es sehr wahrscheinlich, dass der Dateityp bereits registriert ist. Konkurrenzprodukte dürften z.B. der Windows-Media-Player oder Winamp sein.

Recht häufig findet man Code, der in die Regsitry unter HKEY_CLASSES_ROOT die gewünschte Dateiendung registriert. Eine sehr schöne Ausarbeitung ist wohl diese Klasse. Dafür benötigt man Admin-Rechte, wenn ich das richtig sehe.

Jetzt gibt es ja aber nicht nur diese globale Einstellung, sondern jeder User kann selbst sein Lieblingsprogramm für z.B. mp3s aussuchen. Dafür scheint es unter HKEY_CURRENT_USER/Software/Classes entsprechende Einträge zu geben, die vom Aufbau her denen unter HK_CR entsprechen (also einmal einen Eintrag für die Endung, mit einem Standardwert "Beschreibung für *.abc Dateien", und dann einen Eintrag für die Beschreibung, wo dann unter /shell/open/command die Anwendung zu finden ist.)

Super, hab ich gedacht. Das ist ja einfach. Dummerweise bin ich da auf eine Endung gestoßen, wo als Anwendung Notepad eingetragen ist, der Dateityp aber eigentlich mit einem Hexeditor verknüpft ist.
Die passende Verknüpfung fand ich dann unter HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\FileExts, wo sich unter anderem auch die "Öffnen-Mit"-Listen findet. Und bei der Suche hier im Forum bin ich dann noch auf eine Variante gestoßen, die was in HKEY_LOCAL_MACHINE\SOFTWARE\Classes reinschreibt, wo sich nochmal eine Liste mit Dateiendungen wie unter HKEY_CLASSES_ROOT findet.

Jetzt bin ich ehrlich gesagt etwas verwirrt, und weiß nicht recht, was ich wo reinschreiben soll (insbesondere der Teil ...\Explorer\FileExts ist irgendwie nicht klar ersichtlich strukturiert), damit ein normaler User bei Klick auf "Dateitypen registrieren" in meinem Programm den gewünschten Effekt erhält. Welche Angabe hat die höchste Priorität, gibt es alle Varianten bei allen Windows-Versionen (9x, ME, NT, 2000, XP), oder sind bei einigen Versionen einige gar nicht da? (Ich denke mal, dass unter 9x nur die erste zu finden ist.) Ist es OK, wenn ich ggf. nur die Werte mit geringerer Priorität schreibe, und die anderen lösche? Oder soll ich nur die mit der höheren Priorität schreiben, und somit die geringeren unwirksam machen? Nennt man das bereits "zumüllen" der Registry?

Kann mir hier einer zu etwas Durchblick verschaffen? Einfach rumexperimentieren, bis es (bei mir) klappt halte ich für unschön, da ich etwas Respekt vor einem unüberlegten Zugriff auf die Registry habe
  Mit Zitat antworten Zitat