Mengakses Pendaftaran 64-bit daripada Aplikasi Windows 32-bit
Cabaran:
Aplikasi 32-bit menghadapi kesukaran untuk mengakses pendaftaran 64-bit pada sistem Windows 64-bit. Isu ini sering timbul apabila mengakses maklumat sistem yang berada dalam pendaftaran 64-bit, seperti laluan ke contoh SQL Express, daripada ujian unit 32-bit yang dijalankan pada pelayan binaan 64-bit.
Penyelesaian:
Mengakses Pendaftaran 64-bit:
Properti RegistryView.Registry64
menyediakan penyelesaian untuk mengakses pendaftaran 64-bit daripada aplikasi 32-bit. Kod berikut menunjukkan ini:
<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>
Mengakses Pendaftaran 32-bit:
Sebaliknya, untuk mengakses pendaftaran 32-bit, gunakan 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>
Pertimbangan Penting:
RegistryView.Registry32
ialah pendekatan yang disyorkan dan lebih langsung.RegisteredOrganization
tersalah mengembalikan "Microsoft" apabila diakses daripada kod 32-bit. Kod 64-bit akan mengembalikan organisasi yang betul.GetAllRegValueNames()
membenarkan pengambilan semula semua nama dan nilai utama, tanpa mengira paparan pendaftaran (32-bit atau 64-bit).??
) untuk mengendalikan potensi nilai nol dengan anggun.Atas ialah kandungan terperinci Bagaimanakah Aplikasi 32-bit Boleh Mengakses Pendaftaran 64-bit dalam Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!