Fonction RegRead avec programmes 64 bits.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Motok
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 30 mars 2016 20:20
Status : Hors ligne

Fonction RegRead avec programmes 64 bits.

#1

Message 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.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Fonction RegRead avec programmes 64 bits.  

#2

Message par mikell »

Essaie RegRead("HKLM64\...etc", 'DisplayVersion')
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: Fonction RegRead avec programmes 64 bits.

#3

Message 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)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Fonction RegRead avec programmes 64 bits.

#4

Message par jguinch »

Tu peux éventuellement utiliser _UninstallList : http://www.autoitscript.fr/forum/viewto ... 21&t=12778
:D
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Motok
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 30 mars 2016 20:20
Status : Hors ligne

Re: Fonction RegRead avec programmes 64 bits.

#5

Message par Motok »

mikell a écrit :Essaie RegRead("HKLM64\...etc", 'DisplayVersion')
Formidable !
Merci encore, j'ai passé des heures dessus ...
Répondre