Page 1 of 1

[SOLVED] Managing a duplicate software entry in the registry

Published: August 5, 2020 - 11:09 AM
by Patrice_minagri
Good morning,

I am currently creating a package and depending on whether the software is installed or not, I use the following code:

Code: Select all

for soft in installed_softwares('SIGAL'):
	if Version(soft['version']) < Version('1.15.1'):
The code doesn't work because when displaying the function installed_softwares(soft) - see below - there are two software entries in the registry.

The property 'version' is empty on one side and filled on the other. But, it seems, that's the property 'version' an empty string which is used when executing the command if Version(soft['version']) < Version('1.15.1'):

Is there a way to use the second input containing 'version' correctly entered with the value 1.15.1?

Thank you very much for your help.

Code: Select all

[{'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: Managing a duplicate software entry in the registry

Published: August 7, 2020 - 10:19 AM
by sfonteneau
Hello Patrice

You have two uninstall keys: "SIGAL_is1" and "SIGAL"

So, two software programs.

In cases like these:

Code: Select all

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