Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Aplikasi 32-bit Boleh Mengakses Kekunci Pendaftaran 64-bit?

Bagaimanakah Aplikasi 32-bit Boleh Mengakses Kekunci Pendaftaran 64-bit?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 13:28:39412semak imbas

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

Mengakses Kekunci Pendaftaran 64-bit daripada Aplikasi 32-bit

Apabila melaksanakan pada OS 64-bit, OpenSubKey() mungkin gagal untuk mengembalikan rujukan kepada kunci pendaftaran yang boleh dilihat dalam regedit.exe. Percanggahan ini timbul kerana aplikasi 32-bit lalai untuk memeriksa cawangan HKLMSoftwareWow6432Node dan bukannya cawangan yang dikehendaki.

Untuk mengakses versi 64-bit pendaftaran, nyatakan parameter RegistryView dengan jelas:

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
}

Teknik ini memastikan bahawa fungsi OpenSubKey() menyasarkan cawangan pendaftaran yang sesuai, menyediakan akses kepada subkunci yang diminati.

Untuk versi .NET sebelum 4.0, memanfaatkan P/Invoke mungkin diperlukan untuk berinteraksi dengan kekunci 64-bit daripada aplikasi 32-bit. Panduan terperinci mengenai pendekatan ini boleh didapati di: http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or -sebaliknya/

Atas ialah kandungan terperinci Bagaimanakah Aplikasi 32-bit Boleh Mengakses Kekunci Pendaftaran 64-bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn