[Wapt] Dossier Dia récalcitrant
Mathieu GUSTIN
M.GUSTIN at nouvelle-aquitaine.fr
Fri Apr 28 08:59:59 CEST 2017
Bonjour, vous pouvez essayer avec la fonction makepath pour le premier
point
pour le deuxième point
si je ne trompe pas, la notion de killbefore de la commande
Install_exe_if_needed est seulement l'installation
la desinstallation se fera par le processus windows coder lors de
l'installation si il y en a une de coder
ps : certainement dans
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\25A60C59-0FDC-4D73-81F4-D4A6D4E0CB92\QuietUninstallString
Cordialement
GUSTIN Mathieu
Chargé de Projet
Service Numérique Educatif / Direction de l'Education
Site de Poitiers - Région Nouvelle Aquitaine
m.gustin at nouvelle-aquitaine.fr
06 82 74 29 34
De : Bruno OGOR <bogor at ac-rennes.fr>
A : wapt at lists.tranquil.it
Date : 26/04/2017 14:43
Objet : [Wapt] Dossier Dia récalcitrant
Envoyé par : "WAPT" <wapt-bounces at lists.tranquil.it>
Bonjour,
J'ai fait un paquet pour le logiciel Dia, ce dernier s'installe
très bien. Par contre lors de la suppression du programme il me reste dans
"Program Files", le dossier "Dia" et tous ces sous-dossiers vides.
Effectivement lorsque l'on supprime "Dia" par Windows, le programme
demande si l'on veut supprimer l'ensemble des dossiers du programme.
Malheureusement il n'y a pas dans la fonction de désinstallation
automatique d'options concernant ce point.
J'ai donc rajouté à mon code une fonction remove_tree() mais celle ci ne
supprime pas le dossier "Dia" et je ne comprends pas pourquoi. Par contre
elle supprime tous les sous dossiers à l'intérieur.
J'ai testé avec la fonction os.path.exists ou IsDir avec un print pour me
dire si il trouvait le dossier et il indique que "oui"
Voici mon code :
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = ['Dia']
import os
def install():
print('Installation du logiciel Dia')
#Arreter le processus Dia avant la suppression
killalltasks('diaw.exe')
#Lancement de l installation
run('"Dia.exe" /S')
def uninstall():
print('Suppression du logiciel Dia')
#Arreter le processus Dia avant la suppression
killalltasks('diaw.exe')
#Suppression du dossier residuel dans Program Files
#La suppression ne fonctionne pas pour le moment
DirDia = (programfiles32 + r'\Dia')
if os.path.exists(DirDia):
remove_tree(DirDia)
Mon contexte de test est le suivant : Je code avec PyScripter selon les
préco WAPT et je suis sur un Windows 7-64Bits
J'ai toujours le même résultat et du coup je ne comprends pas.
Pouvez vous m'aider ?
PS: Une deuxième petite question annexe :
Lors de la désinstallation d'un programme installé de la façon suivante :
Install_exe_if_needed('AdobeAIRInstaller.exe',silentflags='-silent
-eulaAccepted',key='{25A60C59-0FDC-4D73-81F4-D4A6D4E0CB92}',min_version=versionpaquet,killbefore=['iexplorer.exe','firefox.exe'])
Est ce que le Killbefore de l'installeur est exécuté avant de lancer la
suppression ?
--
OGOR Bruno
Daip de Brest_______________________________________________
WAPT mailing list
WAPT at lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.tranquil.it/pipermail/wapt/attachments/20170428/d8ab846f/attachment.html>
More information about the WAPT
mailing list