Página 1 de 1

[RESUELTO] Gestionar una entrada de software duplicada en el registro

Publicado: 5 de agosto de 2020 - 11:09 a. m.
por Patrice_minagri
Buen día,

Actualmente estoy creando un paquete y dependiendo de si el software está instalado o no, uso el siguiente código:

Código: Seleccionar todo

for soft in installed_softwares('SIGAL'):
	if Version(soft['version']) < Version('1.15.1'):
El código no funciona porque al mostrar la función softwares_instalados(software) - ver más abajo - hay dos entradas de software en el registro.

La propiedad 'versión' está vacío por un lado y lleno por el otro. Pero, al parecer, esa es la propiedad 'versión' una cadena vacía que se utiliza al ejecutar el comando si Versión(soft['versión']) < Versión('1.15.1'):

¿Hay alguna forma de utilizar la segunda entrada que contiene? 'versión' ¿Se ingresó correctamente con el valor 1.15.1?

Muchas gracias por tu ayuda.

Código: Seleccionar todo

[{'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: Gestión de una entrada de software duplicada en el registro

Publicado: 7 de agosto de 2020 - 10:19 a. m.
por sfonteneau
Hola Patrice

Tienes dos claves de desinstalación: "SIGAL_is1" y "SIGAL"

Entonces, dos programas de software.

En casos como estos:

Código: Seleccionar todo

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