Zugriff auf die 64-Bit-Registrierung von einer 32-Bit-Windows-Anwendung aus
Herausforderung:
32-Bit-Anwendungen haben Schwierigkeiten beim Zugriff auf die 64-Bit-Registrierung auf 64-Bit-Windows-Systemen. Dieses Problem tritt häufig auf, wenn über einen 32-Bit-Komponententest, der auf einem 64-Bit-Build-Server ausgeführt wird, auf Systeminformationen zugegriffen wird, die sich in der 64-Bit-Registrierung befinden, z. B. den Pfad zu einer SQL Express-Instanz.
Lösung:
Zugriff auf die 64-Bit-Registrierung:
Die RegistryView.Registry64
-Eigenschaft bietet die Lösung für den Zugriff auf die 64-Bit-Registrierung von einer 32-Bit-Anwendung aus. Der folgende Code demonstriert dies:
<code class="language-csharp">RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); RegistryKey sqlServerKey = localKey.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"); string sqlExpressKeyName = (string)sqlServerKey.GetValue("SQLEXPRESS");</code>
Zugriff auf die 32-Bit-Registrierung:
Umgekehrt verwenden Sie RegistryView.Registry32
:
<code class="language-csharp">RegistryKey localKey32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); RegistryKey sqlServerKey32 = localKey32.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"); string sqlExpressKeyName = (string)sqlServerKey32.GetValue("SQLEXPRESS");</code>
Wichtige Überlegungen:
RegistryView.Registry32
der empfohlene und direktere Ansatz.RegisteredOrganization
-Wert fälschlicherweise „Microsoft“ zurückgibt, wenn über 32-Bit-Code darauf zugegriffen wird. Der 64-Bit-Code gibt die richtige Organisation zurück.GetAllRegValueNames()
ermöglicht den Abruf aller Schlüsselnamen und -werte, unabhängig von der Registrierungsansicht (32-Bit oder 64-Bit).??
), um potenzielle Nullwerte ordnungsgemäß zu verarbeiten.Das obige ist der detaillierte Inhalt vonWie kann eine 32-Bit-Anwendung auf die 64-Bit-Registrierung in Windows zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!