Page 1 sur 1

Fonction RegRead avec programmes 64 bits.

Posté : jeu. 31 mars 2016 08:17
par Motok
Bonjour à tous,

La fonction RegRead n'arrive pas à lire certaines clés registres lors de l'installation d'un programme 64 bits sur un Windows 64 bits.
Je m'explique : dans un script d'installation d'un logiciel (SumatraPDF), j'utilise cette fonction afin de vérifier que le programme a été installé et dans la bonne version.
Pour se faire, voici la ligne :

Code : Tout sélectionner

RegRead(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SumatraPDF,'DisplayVersion')
Cette ligne est différente si la version installée de SumatraPDF est en 32 bits sur un système Windows 64 bits.
Elle devient alors :

Code : Tout sélectionner

RegRead(HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\SumatraPDF,'DisplayVersion')
Enfin, dernier cas, lorsque le script installe le logiciel en 32 bits sur un système Windows 32 bits (utilisé juste pour tester), la clé est la même que dans le premier cas.

La fonction retourne correctement une valeur (True ou False) lors des cas 2 et 3 mais dans le cas 1 elle ne retourne aucune valeur, comme si elle ne pouvait pas lire la clé.

Une idée ?

P.S. J'ai d'abord pensé un problème avec le logiciel, mais il se trouve que java 64 bits pose le problème sur un système Windows 64 bits.

Re: Fonction RegRead avec programmes 64 bits.  

Posté : jeu. 31 mars 2016 16:45
par mikell
Essaie RegRead("HKLM64\...etc", 'DisplayVersion')

Re: Fonction RegRead avec programmes 64 bits.

Posté : jeu. 31 mars 2016 18:04
par TomAijerrie
Fais un test du type If @error pour tester si la première ligne marche, si erreur teste la deuxième ligne, si l'erreur persiste, c'est que aucune de ces deux lignes marchent (logiciel pas installé ?)

Pour utiliser la solution de Mikell (qui est plus simple), HKLM64 remplace HKEY_LOCAL_MACHINE dans la première ligne et est devrait fonctionner pour le deuxième cas, (je ne sais pas si ça fonctionne dans le dernier cas)

Re: Fonction RegRead avec programmes 64 bits.

Posté : jeu. 31 mars 2016 20:12
par jguinch
Tu peux éventuellement utiliser _UninstallList : http://www.autoitscript.fr/forum/viewto ... 21&t=12778
:D

Re: Fonction RegRead avec programmes 64 bits.

Posté : ven. 01 avr. 2016 08:17
par Motok
mikell a écrit :Essaie RegRead("HKLM64\...etc", 'DisplayVersion')
Formidable !
Merci encore, j'ai passé des heures dessus ...