Rubrique précédente: RegSetVariable : Stocker une variable dans une clé de registreRubrique suivante: Fonctions de manipulation de chaîne


SetMode64 : accès au registre Windows 64 bits et au système de fichiers

Les fonctions DMScript peuvent accéder au registre Windows et lancer des programmes. Lorsque DMScript s'exécute sur un système d'exploitation Windows 64 bits, le système d'exploitation impose certaines règles car DMScript est une application 32 bits. L'accès au registre pour certaines clés est automatiquement redirigé vers une zone de registre 32 bits parallèle. Par exemple, l'accès à HKLM\SOFTWARE\xxx est redirigé vers HKLM\SOFTWARE\Wow6432Node\xxx. Pour obtenir une liste complète des clés redirigées, consultez l'article : us/library/aa384253(v=vs.85).aspx. de http://msdn.microsoft.com/en

De même, l'accès au système de fichiers à l'aide de certaines variables d'environnement qui font référence aux répertoires système, sont automatiquement redirigés vers des répertoires qui contiennent des binaires 32 bits. Par exemple, le répertoire %windir%\System32 est réservé aux applications 64 bits. Si DMScript tente d'accéder à ce répertoire, il est automatiquement redirigé vers %windir%\SysWOW64. Pour plus d'informations, consultez l'article http://msdn.microsoft.com/en-us/library/aa384187(v=vs.85).aspx.

Ce comportement est important pour les scripts de signatures intelligentes parce que les scripts doivent détecter des applications 64 bits en accédant aux clés de registre 64 bits et aux systèmes de fichiers appropriés. Par exemple, si un script de signatures intelligentes essaie de lire la clé de registre pour la version 64 bits de 7zip à l'emplacement HKLM\SOFTWARE\7-zip, le script échoue parce qu'il effectue la recherche dans le répertoire HKLM\SOFTWARE\ Wow6432Node\7-zip qui n'existe pas. De même, une tentative de recherche dans la version 64 bits du Bloc-notes dans le répertoire %windir%\System32 trouve la version 32 bits.

Pour gérer ce comportement, DMScript fournit la fonction suivante qui désactive la redirection automatique sur le système d'exploitation Windows 64 bits :

setmode64(mode)
Mode

Spécifie si la redirection doit être désactivée ou activée. Une valeur de 1 désactive la redirection et une valeur de 0 l'active.
Exemple : setmode64(1)

Remarque : Lorsque vous êtes en mode 64 bits, accédez au registre 32 bits à l'aide d'un nom physique comme HKLM\SOFTWARE\Wow6432Node\xxx. Toutefois, Microsoft ne recommande pas cette pratique parce que la méthode de redirection peut changer dans les versions futures de Windows. A la place, le script doit revenir au mode 32 bits.

Important : La désactivation de la redirection du système de fichiers pour de plus longues périodes peut empêcher dmscript de charger les DLL système, entraînant son échec.