Bonjour ,
Je bute sur le pb suivant (sous NT avec python 2.3):
J'aimerai lancer une appli par son raccourci mais avec fermeture du
script python (ca elimine os.system,popen ou spawn qui genere un nouveau
process ,mais avec lesquelles le lancement par le raccourci se fait sans
pb).Là ,où ca bloque c'est avec os.exec*
Si je lance l'appli directement par son exe ,le launch est correct mais
l'appli qui est sur un autre pc du réseau et qui sert à ecouter le port
série pour récuperer une sortie d'automate ,ne fonctionne pas
correctement.Elle ne fonctionne que si je passe par le raccourci (
pourquoi ? ca j'ai pas vraiment creusé certes...)de mon ordi.
J'ai tenté de passer CMD.exe en Path et puis 'start' et le path du
raccourci en argument 2 et 3 mais sans succès (genre
os.execlp('CMD.exe','CMD','start C:\\e.t.c....lnk')
Prob d'arguments avec CMD.exe ou utilisation inadéquate de exec*
je galère un peu.
Merci par avance
Laurent
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
patapon
En relisant un peu mieux la doc sur l'environnement de processus , je m'apercois que exec* et spawn ne lancent que des executables alors que system et popen executent une commande passée au shell de la plateforme (en l'occurence cmd.exe pour mon cas). Ca resoud pas mon pb ,mais ca explique pourquoi exec* ne fonctionnera pas... cata
En relisant un peu mieux la doc sur l'environnement de processus , je
m'apercois que exec* et spawn ne lancent que des executables alors que
system et popen executent une commande passée au shell de la plateforme
(en l'occurence cmd.exe pour mon cas).
Ca resoud pas mon pb ,mais ca explique pourquoi exec* ne fonctionnera pas...
cata
En relisant un peu mieux la doc sur l'environnement de processus , je m'apercois que exec* et spawn ne lancent que des executables alors que system et popen executent une commande passée au shell de la plateforme (en l'occurence cmd.exe pour mon cas). Ca resoud pas mon pb ,mais ca explique pourquoi exec* ne fonctionnera pas... cata
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !
Dans un cas difficile, je crée, sous Python, un fichier C:TOTO.BAT, dans lequel je met 'START C:"Program Files"Prog.exe -A -B -C' (noter les guillemets pour les répertoires avec espaces).
Ensuite, je lance os.startfile(r"C:TOTO.BAT")
@-salutation -- Michel Claveau
Bonsoir !
Dans un cas difficile, je crée, sous Python, un fichier C:TOTO.BAT, dans
lequel je met 'START C:"Program Files"Prog.exe -A -B -C' (noter les
guillemets pour les répertoires avec espaces).
Dans un cas difficile, je crée, sous Python, un fichier C:TOTO.BAT, dans lequel je met 'START C:"Program Files"Prog.exe -A -B -C' (noter les guillemets pour les répertoires avec espaces).
Ensuite, je lance os.startfile(r"C:TOTO.BAT")
@-salutation -- Michel Claveau
petou
Bonjour , Le pb avec ta soluce c'est que soit j'utilise "startfile" et ca genere un nouveau process or j'aimerais que le process Python soit remplacé par celui de l'appli soit j'utilise execl("chemin","nomdel'appli").Là ,le process python se termine correctement mais l'appli ne demarre pas après l'execution du .bat...(un double clic sur le .bat ,lui,fonctionne correctement ce qui aurait tendance à valider le .bat) prob de param passés à start peut-être ? en tout cas merci pour le tuyau Laurent
Bonjour ,
Le pb avec ta soluce c'est que soit j'utilise "startfile" et ca genere
un nouveau process or j'aimerais que le process Python soit remplacé par
celui de l'appli
soit j'utilise execl("chemin","nomdel'appli").Là ,le process python se
termine correctement mais l'appli ne demarre pas après l'execution du
.bat...(un double clic sur le .bat ,lui,fonctionne correctement ce qui
aurait tendance à valider le .bat)
prob de param passés à start peut-être ?
en tout cas merci pour le tuyau
Laurent
Bonjour , Le pb avec ta soluce c'est que soit j'utilise "startfile" et ca genere un nouveau process or j'aimerais que le process Python soit remplacé par celui de l'appli soit j'utilise execl("chemin","nomdel'appli").Là ,le process python se termine correctement mais l'appli ne demarre pas après l'execution du .bat...(un double clic sur le .bat ,lui,fonctionne correctement ce qui aurait tendance à valider le .bat) prob de param passés à start peut-être ? en tout cas merci pour le tuyau Laurent
F. Petitjean
On Tue, 23 Nov 2004 07:13:10 +0100, petou wrote:
Bonjour , Le pb avec ta soluce c'est que soit j'utilise "startfile" et ca genere un nouveau process or j'aimerais que le process Python soit remplacé par celui de l'appli Et quel est exactement l'intérêt ?
- minimiser le nombre de processus (la belle affaire) - si le processus python est remplacé, le code python ne sert qu'à lancer l'application, dans ce cas autant faire directement du C (avec ctypes éventuellement).
soit j'utilise execl("chemin","nomdel'appli").Là ,le process python se termine correctement mais l'appli ne demarre pas après l'execution du .bat...(un double clic sur le .bat ,lui,fonctionne correctement ce qui aurait tendance à valider le .bat) prob de param passés à start peut-être ? en tout cas merci pour le tuyau Laurent Faites un tour sur http://www.sysinternals.com/ vous trouverez peut-être
une explication sur ces bizarreries windows.
On Tue, 23 Nov 2004 07:13:10 +0100, petou <petou@wanadoo.fr> wrote:
Bonjour ,
Le pb avec ta soluce c'est que soit j'utilise "startfile" et ca genere
un nouveau process or j'aimerais que le process Python soit remplacé par
celui de l'appli
Et quel est exactement l'intérêt ?
- minimiser le nombre de processus (la belle affaire)
- si le processus python est remplacé, le code python ne sert qu'à
lancer l'application, dans ce cas autant faire directement du C (avec
ctypes éventuellement).
soit j'utilise execl("chemin","nomdel'appli").Là ,le process python se
termine correctement mais l'appli ne demarre pas après l'execution du
.bat...(un double clic sur le .bat ,lui,fonctionne correctement ce qui
aurait tendance à valider le .bat)
prob de param passés à start peut-être ?
en tout cas merci pour le tuyau
Laurent
Faites un tour sur http://www.sysinternals.com/ vous trouverez peut-être
Bonjour , Le pb avec ta soluce c'est que soit j'utilise "startfile" et ca genere un nouveau process or j'aimerais que le process Python soit remplacé par celui de l'appli Et quel est exactement l'intérêt ?
- minimiser le nombre de processus (la belle affaire) - si le processus python est remplacé, le code python ne sert qu'à lancer l'application, dans ce cas autant faire directement du C (avec ctypes éventuellement).
soit j'utilise execl("chemin","nomdel'appli").Là ,le process python se termine correctement mais l'appli ne demarre pas après l'execution du .bat...(un double clic sur le .bat ,lui,fonctionne correctement ce qui aurait tendance à valider le .bat) prob de param passés à start peut-être ? en tout cas merci pour le tuyau Laurent Faites un tour sur http://www.sysinternals.com/ vous trouverez peut-être
une explication sur ces bizarreries windows.
patapon
Bonjour ,
Et quel est exactement l'intérêt ? - minimiser le nombre de processus (la belle affaire) - si le processus python est remplacé, le code python ne sert qu'à lancer l'application, dans ce cas autant faire directement du C (avec ctypes éventuellement).
Non ,l'appli python ne sert pas qu'à lancer une autre appli.Elle sert à recuperer des données particulières en sortie d'automate puis à les trier et les replacer dans un tableur (entre autres).Je pourrai traiter ca avec du VB mais les dictionnaires (ou les tables de hachages en Perl) manquent cruellement d'où Python.Pour ca , je me branche sur le port com .Mais lorsque son travail est fini ,je veux (j'aimerai :) )qu'elle redonne la main à l'appli qui normalement est à l'ecoute du Com1 (que je stoppe en me branchant sur le com) et je n'ai plus besoin , du coup , du process python (autant le remplacer alors).
Faites un tour sur http://www.sysinternals.com/ vous trouverez peut-être une explication sur ces bizarreries windows. Je connais ce site pour y avoir déjà telechargé des utilitaires de très
bonne qualité pour la maintenance de Xp et Nt.Je vais refouiller ,dès fois que... En me relisant ,j'suis pas toujours sur d'être clair En tout cas ,merci pour l'interêt Laurent
Bonjour ,
Et quel est exactement l'intérêt ?
- minimiser le nombre de processus (la belle affaire)
- si le processus python est remplacé, le code python ne sert qu'à
lancer l'application, dans ce cas autant faire directement du C (avec
ctypes éventuellement).
Non ,l'appli python ne sert pas qu'à lancer une autre appli.Elle sert à
recuperer des données particulières en sortie d'automate puis à les
trier et les replacer dans un tableur (entre autres).Je pourrai traiter
ca avec du VB mais les dictionnaires (ou les tables de hachages en Perl)
manquent cruellement d'où Python.Pour ca , je me branche sur le port com
.Mais lorsque son travail est fini ,je veux (j'aimerai :) )qu'elle
redonne la main à l'appli qui normalement est à l'ecoute du Com1 (que je
stoppe en me branchant sur le com) et je n'ai plus besoin , du coup , du
process python (autant le remplacer alors).
Faites un tour sur http://www.sysinternals.com/ vous trouverez peut-être
une explication sur ces bizarreries windows.
Je connais ce site pour y avoir déjà telechargé des utilitaires de très
bonne qualité pour la maintenance de Xp et Nt.Je vais refouiller ,dès
fois que...
En me relisant ,j'suis pas toujours sur d'être clair
En tout cas ,merci pour l'interêt
Laurent
Et quel est exactement l'intérêt ? - minimiser le nombre de processus (la belle affaire) - si le processus python est remplacé, le code python ne sert qu'à lancer l'application, dans ce cas autant faire directement du C (avec ctypes éventuellement).
Non ,l'appli python ne sert pas qu'à lancer une autre appli.Elle sert à recuperer des données particulières en sortie d'automate puis à les trier et les replacer dans un tableur (entre autres).Je pourrai traiter ca avec du VB mais les dictionnaires (ou les tables de hachages en Perl) manquent cruellement d'où Python.Pour ca , je me branche sur le port com .Mais lorsque son travail est fini ,je veux (j'aimerai :) )qu'elle redonne la main à l'appli qui normalement est à l'ecoute du Com1 (que je stoppe en me branchant sur le com) et je n'ai plus besoin , du coup , du process python (autant le remplacer alors).
Faites un tour sur http://www.sysinternals.com/ vous trouverez peut-être une explication sur ces bizarreries windows. Je connais ce site pour y avoir déjà telechargé des utilitaires de très
bonne qualité pour la maintenance de Xp et Nt.Je vais refouiller ,dès fois que... En me relisant ,j'suis pas toujours sur d'être clair En tout cas ,merci pour l'interêt Laurent
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !
Une autre possibilité : piloter AutoIt.
Exemple :
from win32com.client import Dispatch Auto = Dispatch("AutoItX3.Control") Auto.Run("notepad.exe")
Evidemment, il faut avoir installé AutoIt ; mais ce prog sert à tellement de choses...
Bonsoir !
Une autre possibilité : piloter AutoIt.
Exemple :
from win32com.client import Dispatch
Auto = Dispatch("AutoItX3.Control")
Auto.Run("notepad.exe")
Evidemment, il faut avoir installé AutoIt ; mais ce prog sert à tellement de
choses...