windows - Få filforening i Python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil gerne få programmet tilknyttet en udvidelse, både i Linux og Windows. Jeg ved, at jeg kan køre xdg-open i Linux eller starte i Windows, men jeg vil åbne en mediefil på en ekstern server, så ved at bruge denne metode åbnes webbrowseren, ikke standard mediespiller. Hvordan kan jeg få standardprogrammet for en udvidelse?

Bedste reference


Der er et program kaldet xdg-mime, der er som xdg-åbent, men udskriver oplysningerne i stedet for at forsøge at åbne filen. [12]


xdg-mime query filetype /tmp/foobar.png


Udskriver MIME-typen af ​​filen/tmp/foobar.png, i dette tilfælde image/png


xdg-mime query default image/png


Udskriver .desktop filnavn af programmet, der er registreret for at åbne PNG-filer.


På Windows, hvis du ikke kan finde en API, kan du måske bruge assoc eller ftype, som er en del af cmd.

Andre referencer 1


Dækker kun Windows under:


Jeg tror, ​​at det vil være tæt på det, jeg lige gik igennem for .doc (tilknyttet winword.exe).


På mine maskiner ...


TRIN 1: Se på registreringsdatabasenøglen:
HKEY\_LOCAL\_MACHINESOFTWAREClasses.doc





Windows XP



TRIN 2: Se på standard -værdien (ignorér alt andet der).
Standardværdien jeg ser er Word.Document.8


TRIN 3: Brug nu det og indsæt det (bemærk det i nøglenavnet nedenfor) for at læse standardværdien af


HKEY\_LOCAL\_MACHINESOFTWAREClassesWord.Document.8shellOpencommand


Den værdi er:
'\' C: \ Programmer \ Microsoft Office XP Pro 2003 \ OFFICE11 \ WINWORD.EXE \ '/n/dde'


Og det er vejen til MS Word på mit system, i hvert fald på XP.


Også lige bemærket, om forslag fra Mikel ovenfor, de spiker det på XP:


C:>assoc .doc
.doc=Word.Document.8

C:>ftype Word.Document.8
Word.Document.8="C:Program FilesMicrosoft Office XP Pro 2003OFFICE11WINWORD.EXE" /n /dde





Windows 7



Standard fra STEP 1 har ingen værdi indstillet, darn, der gik enkelheden.
Der er en undernøgle kaldet 'OpenWithProgIDs', så jeg antager, at du ville se efter det, hvis standard er tom eller afhængig af OS versionen.


TRIN 2: Læs undernøglen kaldet 'OpenWithProgIDs'.
Der er et emne ved navn Word.Document.8, så vi er tilbage til det nu.


TRIN 3: Plug det igen, for at læse standardværdien af


HKEY\_LOCAL\_MACHINESOFTWAREClassesWord.Document.8shellOpencommand


I dette tilfælde (minen) er værdien mere kompleks:


'C: \ Programmer (x86) \ Almindelige filer \ Microsoft Shared \ Virtualization Handler \ cvh.exe' 'Microsoft Word Starter 2010 9014006604090000'/n '\% 1'


I det rigtige kvarter, hvad angår brug af registreringsdatabasen.


Desværre i Windows 7 gjorde 'assoc' og 'ftype' ikke tricket for .doc og stien til winword.exe på min maskine.