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
Assoziieren eines Programms mit einem Dateityp unter Windows
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
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
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
Hallo Olf,DER Olf hat geschrieben:macht man sowas nicht in der registry?
ich meine, hier im forum gab es mal so einen thread.....
[...]
# edit:
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Jörg!joerg hat geschrieben:Ich habe die Befehle FTYPE und ASSOC gefunden, die kann ich sicherlich über os.system() benutzen.
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.
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wenn ich nicht ganz blind bin oder eine falsche Vorstellung von der Registry habe: Nein, das steht da leider nicht.DER Olf hat geschrieben:ja, steht das nicht auf der docu seite von python.org?
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
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
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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?
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?