Heim >Backend-Entwicklung >C++ >Wie kann eine 32-Bit-Anwendung auf 64-Bit-Registrierungsschlüssel zugreifen?

Wie kann eine 32-Bit-Anwendung auf 64-Bit-Registrierungsschlüssel zugreifen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-04 13:28:39412Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn