Zugriff auf 64-Bit-Registrierungsschlüssel von einer 32-Bit-Anwendung aus
Bei der Ausführung auf einem 64-Bit-Betriebssystem schlägt OpenSubKey() möglicherweise fehl um einen Verweis auf einen Registrierungsschlüssel zurückzugeben, der in regedit.exe sichtbar ist. Diese Diskrepanz entsteht, weil eine 32-Bit-Anwendung standardmäßig den HKLMSoftwareWow6432Node-Zweig und nicht den gewünschten Zweig überprüft.
Um auf die 64-Bit-Version der Registrierung zuzugreifen, geben Sie explizit den RegistryView-Parameter an:
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 }
Diese Technik stellt sicher, dass die OpenSubKey()-Funktion auf den entsprechenden Registrierungszweig abzielt und Zugriff auf den Unterschlüssel von bietet Interesse.
Für .NET-Versionen vor 4.0 kann die Nutzung von P/Invoke erforderlich sein, um mit 64-Bit-Schlüsseln einer 32-Bit-Anwendung zu interagieren. Eine detaillierte Anleitung zu diesem Ansatz finden Sie unter: http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or -umgekehrt/
Das obige ist der detaillierte Inhalt vonWie kann eine 32-Bit-Anwendung auf 64-Bit-Registrierungsschlüssel zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!