Bonjour à tous,
Je souhaite pouvoir ouvrir des fichiers .CHM (fichiers d'aide de Windows) avec du code Python. Bon je peux le faire avec os.startfile("aide.chm")... mais j'aimerais pouvoir l'ouvrir à une page donnée...
Merci pour vos idées !
Version imprimable
Bonjour à tous,
Je souhaite pouvoir ouvrir des fichiers .CHM (fichiers d'aide de Windows) avec du code Python. Bon je peux le faire avec os.startfile("aide.chm")... mais j'aimerais pouvoir l'ouvrir à une page donnée...
Merci pour vos idées !
Quelques exemples:
Code:
1
2
3
4
5 >>> os.system('hh.exe "c:\\python25\\Doc\\Python25.chm::/lib/builtin.html"') >>> os.system('start /B hh "c:\\python25\\Doc\\Python25.chm::/lib/builtin.html"') >>> from subprocess import call, Popen >>> call(['hh.exe','c:\\python25\\Doc\\Python25.chm::/lib/builtin.html']) >>> Popen('hh.exe "c:\\python25\\Doc\\Python25.chm::/lib/builtin.html"')
Je te remercie pour ta réponse.
Mais est-ce que tu peux me dire quelles sont les différences entre ces possibilités ?
Merci ;)
La première méthode lance un shell (a.k.a. "une fenêtre DOS"), et bloque le processus Python tant que hh.exe (HTML Help) est ouvert.Code:
1
2
3
4
5
6 1 >>> os.system('hh.exe "c:\\python25\\Doc\\Python25.chm::/lib/builtin.html"') 2 >>> os.system('start /B hh "c:\\python25\\Doc\\Python25.chm::/lib/builtin.html"') >>> from subprocess import call, Popen 3 >>> call(['hh.exe','c:\\python25\\Doc\\Python25.chm::/lib/builtin.html']) 4 >>> Popen('hh.exe "c:\\python25\\Doc\\Python25.chm::/lib/builtin.html"')
La seconde lance aussi un shell, mais celui-ci se contente de lancer hh.exe et retourne immédiatement, ce qui fait que la fenêtre de commande se ferme immédiatement et le processus Python continue.
La troisième exécute directement hh.exe sans passer par un shell; le processus Python est aussi bloqué tant que l'autre processus est en cours d'exécution.
La quatrième lance hh.exe mais n'attend pas la fin de l'exécution; en outre Popen retourne un objet qui permet, par exemple, de tester si le programme externe a été fermé (ou de communiquer avec lui mais ça ne te servira pas ici).
Je te remercie pour cette réponse détaillée.
J'
Je te remercie pour cette réponse détaillée.
J'ai retenu la solution POPEN.
Mais il me reste un problème à résoudre : mon CHM s'ouvre sur tout l'écran alors que je souhaiterais qu'il soit dans une plus petite fenêtre.
Ce qui est bizarre, c'est que quand j'utilise os.startfile, la fenêtre est comme je veux...