EricF a écrit :Non, justement, la clé Wow6432Node stocke justement les données pour les applis 32bits sur les OS 64bits.
C'est bien ce que sylvanie a essayé de vous faire comprendre.
When running on 64-bit Windows if you want to read a value specific to the 64-bit environment you have to suffix the HK... with 64 i.e. HKLM64.
Il est bien dit sous un OS 64 Bit et valeurs spécifiques à des applications 64 Bit.
Il faut comprendre par là que cela ne concerne pas toutes les applications et qu'il est fait état d'environnement !
Par acquis de conscience, je viens de regarder sur une machine sous Seven 64 et voici ce que je constate :
- Test effectué avec une application 64 bit pure tel que 7-Zip x64 :
- Pour un script compilé en 64 bit, la lecture de HKLM\Software\7-Zip\Path me donne la même chose que HKLM64\Software\7-Zip\Path
- Pour un script compilé en 32 bit, la lecture de HKLM\Software\7-Zip\Path ne me donne rien alors que la lecture de HKLM64\Software\7-Zip\Path me donne le bon résultat.
Déduction, pour lire la valeur d'une clé de base de registre spécifique à une application 64 bit, préfixez toujours la clé HKxx avec 64 (cela permettra la compatibilité entre une compilation 32 bit ou 64 bit).
En ce qui concerne les applications, compatibles ou avec des modules 32 bit ou 64 bit (peut être la signification de Wow
6432Node); elles enregistrent leurs informations dans Wow6432Node.
A savoir que pour la lecture du chemin d'installation de AutoIt sous Seven 64 bit, voici ce que je constate :
- Que le script soit compilé en 32 ou 64 bit :
- La lecture de HKLM\Software\Wow6462Node\AutoIt\InstallDir me donne le bon résultat.
- La lecture de HKLM64\Software\Wow6462Node\AutoIt\InstallDir me donne le bon résultat.
Conclusion, pour lire une clé de registre d'une
application 32 bit sur
un système 64 bit que le script soit
compilé en 32 bit ou 64 bit, on aura accès à la clé même si
HKxx est préfixé avec
64. Par contre il faudra impérativement utiliser la sous-clé
Wow6432Node.
Conclusion finale :
- Si vous devez lire une clé de registre et que vous jonglez entre les compilations et les applications 32/64 bit, lisez d'abord HKxx64\. Si pas de résultat essayez HKxx64\xxx\Wow6432Node\.
Pour faire un script qui sera compatible pour une compilation 32/64 Bit sur un OS 32/64 Bit, c'est à vous de prévoir les différents cas. Pour cela AutoIt vous donne quelques outils tel que les variables @AutoItX64, @OSArch afin de déterminer comment est compilé votre application et sur quelle architecture vous fonctionnez.
Voilà, je pense que vous avez toutes le clé (clé64) en mains.
