Bonjour.
Voici le code que généré pour le logiciel Salsaj. Le problème est que je n'arrive pas à supprimer la clé de la base de registre.
Merci de bien vouloir m'aider.
Cordialement Michel
Livet.
-----------------------------------------------------------------------------------------------------------
# -*- coding: utf-8 -*- from setuphelpers import *
# registry key(s) where WAPT will find how to remove the application(s) uninstallkey = []
# command(s) to launch to remove the application(s) uninstallstring = []
# list of required parameters names (string) which can be used during install required_params = []
def install(): # if you want to modify the keys depending on environment (win32/win64... params..) global uninstallkey global uninstallstring
print('installing liv-sasaj 2.0.3') run(r'"salsaj_with_macros_2_3_windows_installer.msi" /q /norestart')
# def create_user_desktop_shortcut(salsaj,target='C:\Windows\system32\javaw.exe -jar -Dfile.encoding=UTF-8 "C:\Program Files (x86)\SalsaJ\SalsaJ.jar"',icon='C:\Program Files (x86)\SalsaJ\SalsaJ.ico')
def uninstall(): #Vérification du chemin print("%s" %os.path.join(programfiles32,'SalsaJ')) #Suppresion du répertoire salsaj_dir= os.path.join(programfiles32,'SalsaJ') remove_tree(salsaj_dir) #suppresion de la clé registry_delete("HKEY_LOCAL_MACHINE","SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall",SalsaJ)
La fonction registry_delete ici n'est pas adaptée car il faut supprimer une clé complète avec ses valeurs et pas seulement une valeur dans une clé du registre. Il faudrait plutôt utiliser la fonction _winreg.DeleteKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\SalsaJ")
def uninstall(): #Suppression du répertoire salsaj_dir = makepath(programfiles32,'SalsaJ') remove_tree(salsaj_dir) #suppression de la clé : attention, ne marche que pour une machine WIN64... import _winreg _winreg.DeleteKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\SalsaJ")
Remarques : - HKEY_LOCAL_MACHINE est une constante, donc pas de guillemets autour. - SalsaJ fait partie d'une chaîne de caractères donc guillemets autour.
On peut utiliser la fonction "unregister_uninstall" du module setuphelpers
def uninstall(): #Suppression du répertoire salsaj_dir = makepath(programfiles32,'SalsaJ') remove_tree(salsaj_dir) #suppression de la clé unregister_uninstall("SalsaJ",win64app=False)
Hubert Touvet. Tranquil IT Systems.
Le 23/06/2014 13:08, Druart Michel a écrit :
Bonjour.
Voici le code que généré pour le logiciel Salsaj. Le problème est que je n'arrive pas à supprimer la clé de la base de registre.
Merci de bien vouloir m'aider.
Cordialement Michel
Livet.
# -*- coding: utf-8 -*- from setuphelpers import *
# registry key(s) where WAPT will find how to remove the application(s) uninstallkey = []
# command(s) to launch to remove the application(s) uninstallstring = []
# list of required parameters names (string) which can be used during install required_params = []
def install(): # if you want to modify the keys depending on environment (win32/win64... params..) global uninstallkey global uninstallstring
print('installing liv-sasaj 2.0.3') run(r'"salsaj_with_macros_2_3_windows_installer.msi" /q /norestart')
# def create_user_desktop_shortcut(salsaj,target='C:\Windows\system32\javaw.exe -jar -Dfile.encoding=UTF-8 "C:\Program Files (x86)\SalsaJ\SalsaJ.jar"',icon='C:\Program Files (x86)\SalsaJ\SalsaJ.ico')
def uninstall(): #Vérification du chemin print("%s" %os.path.join(programfiles32,'SalsaJ')) #Suppresion du répertoire salsaj_dir= os.path.join(programfiles32,'SalsaJ') remove_tree(salsaj_dir) #suppresion de la clé registry_delete("HKEY_LOCAL_MACHINE","SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall",SalsaJ)
WAPT mailing list WAPT@lists.tranquil.it http://lists.tranquil.it/listinfo/wapt