J'essaye de créer un paquet pour la démo de PSIM 2021B. La clé dé désinstallation est bien dans le registre mais dans HKEY_CURRENT_USER :
Code : Tout sélectionner
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\6305213B-44F4-476B-85A0-EB506EDB8E01_is1
Est-ce qu'il y a un autre moyen d'utiliser cette clé pour désinstaller ? ou bien il faut forcément utiliser la commande run(r'%s /verysilent' % uninstall_string) ?"FATAL ERROR : 2 : The key Software\Microsoft\Windows\CurrentVersion\Uninstall\['6305213B-44F4-476B-85A0-EB506EDB8E01_is1'] can not be opened"
Voici le code de mon setup.py:
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
setup_binary_name = glob.glob("PSIM*.exe")[0]
app_name = "_".join(setup_binary_name.split("_")[:2])
app_dir = makepath('C:\Powersim')
app_dir_binaries = makepath(app_dir,"_".join(setup_binary_name.split("_")[:3]))
binary_name = "PSIM.exe"
kill_list = [binary_name]
shortcutsdir = makepath(common_desktop(),'Logiciels','Elec - Automatisme')
uninstallkey_psim = ['6305213B-44F4-476B-85A0-EB506EDB8E01_is1']
uninstall_string = r'%s\unins000.exe' %app_dir_binaries
def install():
print(r'Suppression des anciens PSIM')
run_notfatal(r'C:\Powersim\PSIM11.1.1_Demo\unins000.exe /verysilent')
run_notfatal(r'MsiExec.exe /qn /X{D46F2B61-FEE0-46AF-B57F-0EF74F0ECC98}')
if isfile(makepath(shortcutsdir,'PSIM.lnk')):
remove_file(makepath(shortcutsdir,'PSIM.lnk'))
print(r'Installation de %s' % app_name)
killalltasks(kill_list)
install_exe_if_needed(setup_binary_name,
silentflags='/VERYSILENT /SUPPRESSMSGBOXES /NORESTART',
key='',
min_version='2021b'
)
print(r'Création du raccourci %s dans %s' %(app_name,shortcutsdir))
if not isdir(shortcutsdir):
mkdirs(shortcutsdir)
create_shortcut(makepath(shortcutsdir,'%s.lnk' %app_name), target=makepath(app_dir_binaries,binary_name))
remove_desktop_shortcut('PSIM License Monitor')
remove_desktop_shortcut(app_name)
def uninstall():
print(r"Desinstallation de %s" %app_name)
killalltasks(kill_list)
##uninstall_cmd(uninstallkey_psim)
run_notfatal(r'%s /verysilent' % uninstall_string)
if isfile(makepath(shortcutsdir,'%s.lnk' %app_name)):
remove_file(makepath(shortcutsdir,'%s.lnk' %app_name))
if isdir(app_dir):
remove_tree(app_dir)
def audit():
if isfile(makepath(app_dir_binaries,binary_name)):
return("OK")
else:
return("Erreur : %s est introuvable !" %binary_name)
Et second souci, sans fonction "audit()", ou avec un simple return("OK"), j'ai toujours une erreur : "Audit aborted due to exception: list index out of range"