Page 1 sur 1

[RESOLU] Gestion d'une double entrée d'un logiciel dans base de registre

Posté : 05 août 2020 - 11:09
par Patrice_minagri
Bonjour,

Je suis entrain de réaliser un paquet et selon si le logiciel est installé ou non j'utilise le code suivant :

Code : Tout sélectionner

for soft in installed_softwares('SIGAL'):
	if Version(soft['version']) < Version('1.15.1'):
Le code ne fonctionne pas car en affichant la fonction installed_softwares(soft) - voir ci-dessous - il y a deux entrées du logiciel dans la base de registre.

La propriété 'version' est vide d'un côté et remplie de l'autre. Mais, semble t-il, c'est la propriété 'version' à vide qui est utilisée lorsque l'on exécute la commande if Version(soft['version']) < Version('1.15.1'):

Y a t-il un moyen d'utiliser la deuxième entrée contenant 'version' correctement saisi avec la valeur 1.15.1?

Merci beaucoup de votre aide.

Code : Tout sélectionner

[{'install_date': '',
  'install_location': '',
  'key': u'SIGAL',
  'name': u'SIGAL 1.15.1',
  'publisher': '',
  'system_component': 0,
  'uninstall_string': '',
  'version': '',
  'win64': False},
 {'install_date': u'20200803',
  'install_location': u'C:\\Program Files (x86)\\Minagri\\Sigal\\',
  'key': u'SIGAL_is1',
  'name': u'SIGAL',
  'publisher': u"Minist\xe8re de l'agriculture et de la p\xe8che",
  'system_component': 0,
  'uninstall_string': u'"C:\\Program Files (x86)\\Minagri\\Sigal\\unins000.exe"',
  'version': u'1.15.1',
  'win64': False}]

Re: Gestion d'une double entrée d'un logiciel dans base de registre

Posté : 07 août 2020 - 10:19
par sfonteneau
Bonjour Patrice

Tu a deux uninstallkey "SIGAL_is1" et "SIGAL"

Donc bien deux logiciels

Dans ce genre de cas :

Code : Tout sélectionner

for soft in installed_softwares(uninstallkey='SIGAL_is1'):
	if Version(soft['version']) < Version('1.15.1'):