Maison >développement back-end >C++ >Comment une application 32 bits peut-elle accéder aux clés de registre 64 bits ?
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!