Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester si un programme est ouvert ?

35 réponses
Avatar
Dom
Bonjour,

Ce programme python ouvre un fichier PDF dans Internet Explorer, puis
affiche une boite de dialogue avec 3 boutons permettant :
IMPRIMER RECTO | IMPRIMER VERSO | QUITTER

le fait de cliquer sur le bouton QUITTER, ferme Internet explorer, puis
ferme le programme python.
Le probleme, c'est si l'utilisateur a fermer Internet Explorer avant, alors,
on a un message d'erreur.

Comment résoudre ce probleme.
Comment tester si Internet explorer est ouvert ?

Tres cordialement.


-----------
import win32com.client, time
ie = win32com.client.Dispatch('InternetExplorer.Application')
ie.Visible=1
ie.Navigate('http://170.79.251.103/imprimes_pdf/DOSSIER/FICHIER')


def imprimer_RECTO():
while ie.busy:
time.sleep(1)
ie.Document.printPages(1,1)


def imprimer_VERSO():
while ie.busy:
time.sleep(1)
ie.Document.printPages(2,2)

def quitter():
ie.Quit()
import sys
sys.exit()


from Tkinter import *
fen = Tk()
canvas = Canvas (fen, height=5, width=5)
canvas.pack(side=LEFT)
bouton_recto = Button(fen, text="imprimer RECTO", font="Arial 10", width=16,
command=imprimer_RECTO)
bouton_recto.pack(side='left')
bouton_verso =Button(fen, text="imprimer VERSO", font="Arial 10", width=16,
command=imprimer_VERSO)
bouton_verso.pack(side='left')
bouton_quitter=Button(fen, text="QUITTER", font="Arial 10", width=16,
command=quitter)
bouton_quitter.pack(side='right')

fen.mainloop()
--------------------

10 réponses

1 2 3 4
Avatar
Olivier Brisson
Dom schrieb:
Bonjour,

Ce programme python ouvre un fichier PDF dans Internet Explorer, puis
affiche une boite de dialogue avec 3 boutons permettant :
IMPRIMER RECTO | IMPRIMER VERSO | QUITTER

le fait de cliquer sur le bouton QUITTER, ferme Internet explorer, puis
ferme le programme python.
Le probleme, c'est si l'utilisateur a fermer Internet Explorer avant, alors,
on a un message d'erreur.

Comment résoudre ce probleme.
Comment tester si Internet explorer est ouvert ?

Tres cordialement.


Bonjour Dom,

Je n'arrive pas à comprendre pourquoi vous vous focalisez simplement sur
IE. Pensez un peu aux gens qui utilisent d'autres navigateurs.

Cordialement,

Olivier

Avatar
Franssoa

Je n'arrive pas à comprendre pourquoi vous vous focalisez simplement sur
IE. Pensez un peu aux gens qui utilisent d'autres navigateurs.


C'est peut-être juste une appli pour lui tout seul... et ça ne répond
pas vraiment à sa question (dont je n'ai pas non plus la réponse).

Franssoa

Avatar
JB
Hello

Comment tester si Internet explorer est ouvert ?


pourquoi ne pas faire un try/except au niveau de cette erreur ?

sinon tu peux detecter si IE est ouvert avec un code de ce style :

from win32com.client import Dispatch
clsid='{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'
ShellWindows = Dispatch(clsid)
print ShellWindows.Count

cela devrait te retourner le nombre de fenetres "Explorer" ouvertes
(mais pas forcement celle que tu veux)

pour cibler une fenetre en particulier tu peux récupérer son URL de
cette facon :
ShellWindows[i].LocationURL

et ainsi tester si la fenetre que tu veux est ouverte ou pas

Hope this helps

Julien

Avatar
Michel Claveau
Bonsoir !

pourquoi ne pas faire un try/except


Toutafé.
Et, si on ne sait pas quoi tester, il existe la propriété
"ie.Document", ou "ie.Busy".
Ce qui pourrait donner, avec le début du code de Dom :


try:
if ie.ie.Busy:
flag="mon IE est ouvert et prêt."
else:
flag="mon IE est ouvert, mais pas prêt."
except:
flag="mon IE a foutu le camp ; snif !"


--
@-salutations

Michel Claveau

Avatar
hg
Dom wrote:
Bonjour,

Ce programme python ouvre un fichier PDF dans Internet Explorer, puis
affiche une boite de dialogue avec 3 boutons permettant :
IMPRIMER RECTO | IMPRIMER VERSO | QUITTER

le fait de cliquer sur le bouton QUITTER, ferme Internet explorer, puis
ferme le programme python.
Le probleme, c'est si l'utilisateur a fermer Internet Explorer avant, alors,
on a un message d'erreur.

Comment résoudre ce probleme.
Comment tester si Internet explorer est ouvert ?

Tres cordialement.


-----------
import win32com.client, time
ie = win32com.client.Dispatch('InternetExplorer.Application')
ie.Visible=1
ie.Navigate('http://170.79.251.103/imprimes_pdf/DOSSIER/FICHIER')


def imprimer_RECTO():
while ie.busy:
time.sleep(1)
ie.Document.printPages(1,1)


def imprimer_VERSO():
while ie.busy:
time.sleep(1)
ie.Document.printPages(2,2)

def quitter():
ie.Quit()
import sys
sys.exit()


from Tkinter import *
fen = Tk()
canvas = Canvas (fen, height=5, width=5)
canvas.pack(side=LEFT)
bouton_recto = Button(fen, text="imprimer RECTO", font="Arial 10", width,
command=imprimer_RECTO)
bouton_recto.pack(side='left')
bouton_verso =Button(fen, text="imprimer VERSO", font="Arial 10", width,
command=imprimer_VERSO)
bouton_verso.pack(side='left')
bouton_quitter=Button(fen, text="QUITTER", font="Arial 10", width,
command=quitter)
bouton_quitter.pack(side='right')

fen.mainloop()
--------------------















Une solution simple pourrait-être d'imprimer depuis le browser et
d'utiliser le module http://docs.python.org/lib/module-webbrowser.html



hg

Avatar
Mihamina Rakotomandimby
On Tue, 12 Sep 2006 15:48:14 +0200, Franssoa wrote:

Je n'arrive pas à comprendre pourquoi vous vous focalisez simplement sur
IE. Pensez un peu aux gens qui utilisent d'autres navigateurs.
C'est peut-être juste une appli pour lui tout seul...



Bof, quand on a l'habitude des logiciels libres, on a du mal avec cette
notion de "pour moi tout seul"...


Avatar
MC
Bonjour !

Une solution simple pourrait-être d'imprimer depuis le browser
Effectivement, ça pourrait être simple. Mais, je pense que Dom a dû

songer à cette simplicité, car AMHA, son code imprime justement via le
browser. Mais, j'ai peut-être sauté un truc.

d'utiliser le module webbrowser
Maleureusement, ce module est minimaliste, et offre beaucoup moins de

possibilités que la démarche qu'a suivi Dom (COM/Ole-automation).

--
@-salutations

Michel Claveau

Avatar
MC
Bonjour !

pourquoi vous vous focalisez simplement sur IE


AMHA, seul IE permet ce genre de traitement/manip. Je suis sûr que, si
les autres navigateurs progressaient assez, pour être pilotables par
Ole-automation, Dom (et d'autres) se feraient un plaisir de les
intégrer dans leurs développements.


Pensez un peu aux gens qui utilisent d'autres navigateurs


AMHA, ce genre de réflexion, qui n'intervient que pour IE, et pas
lorsque quelqu'un utilise XUL, par exemple, me semble plus polémique
qu'objectif.

--
@-salutations

Michel Claveau

Avatar
MC
Bonjour !

C'est peut-être juste une appli pour lui tout seul


A priori, d'après le message original, l'application a été développée
pour des utilisateurs.
Et ça fonctionne. Difficile de lui reprocher de chercher à améliorer un
programme, en l'adaptant au comportement de certains utilisateurs.

--
@-salutations

Michel Claveau

Avatar
MC
Bonjour !

Bof, quand on a l'habitude des logiciels libres, on a du mal avec cette
notion de "pour moi tout seul"...


Reprocher à quelqu'un d'utiliser le logiciel de son choix, ça fait
partie des habitudes du "libre" ?
(En plus, c'est pour d'autres utilisateurs)

--
@-salutations

Michel Claveau

1 2 3 4