Assoziieren eines Programms mit einem Dateityp unter Windows

Probleme bei der Installation?
Antworten
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Mittwoch 9. Juni 2004, 16:34

Hallo,

hat jemand Erfahrung damit, wie ich ein eigenes Python-Programm bei der Installation unter Windows am einfachsten mit einem (neuen) Dateityp assoziiere?

Ich habe die Befehle FTYPE und ASSOC gefunden, die kann ich sicherlich über os.system() benutzen. Aber vielleicht gibt es ja noch eine "pythonischere" Variante? Müßte theoretisch auch über das _winreg-Modul gehen, hat das schon mal jemand gemacht, und vielleicht ein Beispiel parat?

Danke im Voraus!

Jörg
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Donnerstag 10. Juni 2004, 07:19

macht man sowas nicht in der registry?

ich meine, hier im forum gab es mal so einen thread.....

# edit:
hab einen:
http://python.sandtner.net/viewtopic.php?t=573

und hier etwas von python.org:
http://www.python.org/doc/current/lib/m ... inreg.html


mfg

Olf
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Donnerstag 10. Juni 2004, 08:48

DER Olf hat geschrieben:macht man sowas nicht in der registry?
ich meine, hier im forum gab es mal so einen thread.....
[...]
# edit:
Hallo Olf,

aber mein Problem liegt nicht in der prinzipiellen Nutzung der Registry oder von _winreg, da kann ich mich bestimmt reinfummeln, auch wenn ich Windows seit einigen jahren nur noch im Notfall anfasse. Die Frage ist vielmehr, WAS ich WO in der Registry eintragen müßte.

Danke trotzdem!

Jörg
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Donnerstag 10. Juni 2004, 12:10

ja, steht das nicht auf der docu seite von python.org?
(ich habs mir nicht angeguckt, weil ich es nicht brauche)

mfg

Olf
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 10. Juni 2004, 13:20

joerg hat geschrieben:Ich habe die Befehle FTYPE und ASSOC gefunden, die kann ich sicherlich über os.system() benutzen.
Hallo Jörg!

Einfacher als mit FTYPE wird es kaum noch werden. Natürlich gibt es mehrere Möglichkeiten, die Dateiendung mit einer Anwendung zu assoziieren, aber alles was ich sonst noch kenne, ist um ein Vielfaches komplizierter.

Direktes Eintragen in die Registry
Da muss man nicht nur einen Eintrag machen, sondern mehrere, und die müssen auch noch zusammen passen. (HKEY_CLASSES_ROOT).

Und hier (http://www.activevb.de/tipps/vb6tipps/tipp0001.html) findest du ein Beispiel für Visual Basic. Zumindest findet man damit heraus, was alles in die Registry geschrieben werden muss. Wie schon oben erwähnt -- einfacher als mit FTYPE kenn ich nicht.

Mit einem Installationsprogramm
Mit Installationsprogrammen wie InstallShield Express oder dem Gratisprogramm Inno Setup (http://www.jrsoftware.org/isinfo.php) kann man bereits während des Installierens eines Programmes die Dateiendungen zuweisen. Ob das mit dem Python-Setup möglich ist, weiß ich leider nicht. :oops:

mfg
Gerold
:-)
Zuletzt geändert von gerold am Donnerstag 10. Juni 2004, 13:31, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Gast

Donnerstag 10. Juni 2004, 13:25

DER Olf hat geschrieben:ja, steht das nicht auf der docu seite von python.org?
Wenn ich nicht ganz blind bin oder eine falsche Vorstellung von der Registry habe: Nein, das steht da leider nicht.

Auch Google findet zwar verschiedene Beispiele zur Verwendung von _winreg, aber keines zur Verknüpfung von Dateityp und Anwendung.

Da muß ich wohl selber mal tiefer in die Materie einsteigen.

Jörg
Gast

Donnerstag 10. Juni 2004, 13:29

Hallo Gerold,

danke für den Tip mit VB, schaue ich mir mal an. Falls ich das nicht einfach auf _winreg übertragen kann, nehme FTYPE und ASSOC. Einen Extra-Installer wollte ich eigenlich nicht nehmen, vielleicht bieten die distutils ja sowas irgendann mal an.

Jörg
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 10. Juni 2004, 13:41

Und hier noch ein Link zu diesem Thema: Creating a File Association

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
brasil66
User
Beiträge: 27
Registriert: Mittwoch 20. Juli 2005, 19:01
Wohnort: Braunschweig

Mittwoch 3. August 2005, 13:24

der strang ist zwar nicht mehr ganz taufrisch, aber ich will auch mal meinen senf dazugeben.

wenn man windows anweisen will, welcher dateityp mit welchem programm zu öffnen ist, das muss man dazu garnicht in der registry rumhacken. es geht auch einfach und über die oberfläche:

wenn windows die dateiendung garnicht kennt, dann kommt automatisch der dialog in welchem man das dazugehörige programm auswählen muss/kann und es wird bereits eine liste mit programmen angeboten. wenn das dementsprechende programm nicht dabei ist, dann kann man die dazugehörige .exe über den button suchen oder datenträger raussuchen und zuweisen. es gibt dann auch eine checkbox wo man diese zuweisung einmalig oder permanent setzen kann.
das war´s soweit um einfach nur einen dateityp mit einem programm zu verbinden. hilft dir das weiter?
Antworten