Fonction RegRead avec programmes 64 bits.
Posté : jeu. 31 mars 2016 08:17
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 :
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 :
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.
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')Elle devient alors :
Code : Tout sélectionner
RegRead(HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\SumatraPDF,'DisplayVersion')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.