Bonjour Denis,
Le programme Phyloboite.exe, lorsqu'il est exécuté, lance le processus _Phylo00.exe. J'arrive effectivement à tuer ces deux processus en tuant le processus fils _Phylo00.exe, soit avec une invite de commande, soit dans l'interpréteur en ligne de pyscripter avec killalltasks. (pour ce faire je dois toutefois passer par le gestionnaire de tâches, réduire le processus qui une fois lancé occupe tout l'écran et non dans une fenêtre, puis lancer une invite de commande ou pyscripter).
En fait le problème principal est que l'application portable que je souhaite déployer (Phyloboite.exe) demande des droits administrateur pour s'exécuter. A cette fin , je créée une clé de registre dans la fonction install() pour que tous les utilisateurs puissent exécuter l'application avec des droits administrateurs et en mode de compatibilité avec Windows XP SP3 :
Code : Tout sélectionner
registry_setstring(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers","C:\AppsPortables\Phyloboite\Phyloboite.exe","~ RUNASADMIN WINXPSP3 RUNASINVOKER", type=REG_SZ)
Le problème est que malgré cela, une fois l'application déployée sur des postes, il est en fait nécessaire d'ouvrir une fois l'application avec un compte administrateur avant que les utilisateurs ne puissent eux-mêmes lancer l'application avec des droits d'administrateur.
Pour contourner ce problème d'UAC, je voulais donc tenter d'ouvrir puis refermer l'application lors de son installation. Après plusieurs essais , et suite à l'inopérabilité de killalltasks dans install(), j'avais créé un fichier exe (à partir d'un fichier .bat) qui fait cela et qui est lancé lors de l'installation (dans la fonction install() ). Les tests d'installation/désinstallation sous pyscripter ne montrent pas de problèmes particuliers, l'application s'ouvre quelques secondes (3) , puis se referme, et l'installation se termine. Toutefois, après un test de déploiement réel avec installation à l'arrêt des machines, l'installation de cette application ne se termine pas et semble tourner indéfiniment.
Auriez-vous une solution pour remédier à ce problème d'une application portable qui nécessite des droits d'administrateur pour être lancée?
ps1 : pour information, le fichier .bat à partir duquel est créé le fichier .exe contient les commandes suivantes :
Code : Tout sélectionner
start C:\AppsPortables\Phyloboite\Phyloboite.exe && timeout /t 3 && taskkill /f /im "_Phylo00.exe"
(ps2: une autre chose qui est curieux est que la fonction killalltasks tue bien le processus _Phylo00.exe en cours lors de la désinstallation à l'appel de la fonction uninstall() ).
D'avance merci