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

Lancer une appli par son raccourci

6 réponses
Avatar
catapoule
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

6 réponses

Avatar
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
Avatar
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
Avatar
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
Avatar
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.

Avatar
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

Avatar
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...