Maison >développement back-end >C++ >Comment une application 32 bits peut-elle accéder aux clés de registre 64 bits ?

Comment une application 32 bits peut-elle accéder aux clés de registre 64 bits ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-04 13:28:39412parcourir

How Can a 32-bit Application Access 64-bit Registry Keys?

Accès aux clés de registre 64 bits à partir d'une application 32 bits

Lors de l'exécution sur un système d'exploitation 64 bits, OpenSubKey() peut échouer pour renvoyer une référence à une clé de registre visible dans regedit.exe. Cet écart se produit car une application 32 bits inspecte par défaut la branche HKLMSoftwareWow6432Node au lieu de la branche souhaitée.

Pour accéder à la version 64 bits du registre, spécifiez explicitement le paramètre RegistryView :

using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
using (var key = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"))
{
   // The key now points to the 64-bit subkey branch
}

Cette technique garantit que la fonction OpenSubKey() cible la branche de registre appropriée, donnant accès à la sous-clé de intérêt.

Pour les versions .NET antérieures à 4.0, l'utilisation de P/Invoke peut être nécessaire pour interagir avec les clés 64 bits d'une application 32 bits. Un guide détaillé sur cette approche est disponible sur : http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or -vice-versa/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn