Dateitypen programatisch mit Programm in Firefox verknüpfen

mdo

Mitglied
Hallo!

Ich will einen eigenen Dateityp mit einem Programm verknüpfen. Soweit ganz klar und funktioniert auch super. Ich klicke doppelt auf die Datei und schon öffnet sich die Datei mit dem gewünschten Programm.
Die Dateiendung ist *.marisxml und das Programm heißt MAREC.
Ich will nun aber bei der Installation von MAREC alle *.marecxml Dateien für MAREC registrieren. Aber nicht nur an Windows sondern im Firefox. Dort erscheint ja normalerweise beim ersten Auftreten einer Dateiendung das kleine Fenster in dem man gefragt wird, was man mit dieser Dateiendung jetzt und in Zukunft machen will. Genau diesen Schritt will ich umgehen und direkt bei der Installation von "MAREC" einen möglichen Firefox identifizieren und ihm sagen, dass ab sofort alle *.marisxml Dateien mit dem gerade installierten Notepad zu starten sind.
Mein erster Gedanke waren natürlich irgendwelche Command-Line-Arguments... Leider gibt es keinen einzigen Parameter der auf so etwas schließen lässt. Ich war schon auf einigen Mozilla Seiten unterwegs und wurde einfach nicht fündig...
Mein zweiter Gedanke war die Registry. Leider ebenfalls Fehlanzeige...
Mein dritter Gedanke führte mich dann ins Anwendungsverzeichnis und dort fand ich immerhin folgende Datei:
C:\Dokumente und Einstellungen\mdo\Anwendungsdaten\Mozilla\Firefox\Profiles\ey72wvz7.default\mimeTypes.rdf

In dieser Datei gibt es einen Eintrag zu den *.marisxml Dateien und MAREC:
Code:
<RDF:Description RDF:about="urn:handler:local:C:\Programme\MARIS\MAREC\MAREC.exe"
                   NC:prettyName="MAREC.exe"
                   NC:path="C:\Programme\MARIS\MAREC\MAREC.exe" />

<RDF:Description RDF:about="urn:mimetype:handler:application/marisxml"
                   NC:alwaysAsk="false">
    <NC:possibleApplication RDF:resource="urn:handler:local:C:\WINDOWS\system32\NOTEPAD.EXE"/>
    <NC:possibleApplication RDF:resource="urn:handler:local:C:\Programme\MARIS\MAREC\MAREC.exe"/>
    <NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/marisxml"/>
  </RDF:Description>

Ich könnte nun natürlich hingehen und für den installierenden (angemeldeten) Benutzer alle Firefoxprofile editieren. Natürlich erst, nachdem alle Firefox-Instanzen geschlossen wurden, sonst dürfte beim Beenden von Firefox die Datei wohl mit den gecachten Infos wieder neu geschrieben werden (habe ich noch nicht getestet, dürfte aber so sein).
Allerdings möchte ich nicht nur den angemeldeten User-Firefox editieren, sondern die Dateiendung quasi für die gesamte LOCAL_MACHINE hinterlegen.

So langsam glaube ich, Firefox lässt das nicht zu... Hat jemand hier eine hilfreiche Idee? Oder vielleicht sogar die gleiche Erfahrung gemacht?

Vielen Dank für die Hilfe,
mdo
 
S

SE

Hmm ... da das Zielsystem Windows ist gibt es eine sehr einfache Lösung : IE nutzen und Registry-Key setzen.

Das Problem an FF ist : er ist auf Grund seiner Zielstrebung nach OpenSource und vor allem Plattformunabhängigkeit so programmiert das er das Unix-typische Verhalten , nämlich für Konfigurationen config-Dateien im User-Verzeichnis , auf Windows anwedet obwohl Windows genau dafür die Registry hat. Da man aus Sicherheitsgründen auch nicht in User-Daten anderer User rumspielen kann *klar ... als Admin geht das* wird es speziell für den FF so keine Lösung geben.
 

mdo

Mitglied
Ja zu dem Schluss bin ich mittlerweile auch gekommen. Für den IE habe ich die Registry-Lösung schon vorher umgesetzt und wollte Firefox nun auch mit ins Boot nehmen.
Ich habe mir eigentlich eine Art Argumentfunktion erhofft: firefox.exe -ext:marisxml -prog:"C:\bla\bla.exe"
Leider sind diese Zuweisungen von FF Profil zu FF Profil unterschiedlich. Und ein Windows Profil kann auch noch mehrere FF Profile besitzen... Also müsste noch eine Art -allProfiles Schalter hinzukommen.
Leider gibt es keinen dieser drei Schalter und per Hand alle Profile zu lokalisieren ist definitiv zu viel Aufwand, vorallem da diese Profilstrukturen ja nicht in Stein gemeißelt sind und für jede FF Version geprüft werden müssten... Und dann kommen noch Zugriffsbeschränkungen der Windows Profile hinzu.
Naja, Schade... Dann muss der Benutzer bei der ersten Verwendung die Sache eben selbst in die Hand nehmen. Ist auch kein Halsbruch, auch wenns wirklich schade ist...

Aber danke für die Antwort!