سؤال

إذا كنت تقوم بتشغيل تطبيق 32 بت على جهاز 64 بت (أستخدم Windows 7) واكتب هذا الرمز

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\XXX")

سوف تحصل في الواقع على المفتاح من

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\XXX

و لا

HKEY_LOCAL_MACHINE\SOFTWARE\XXX

progromatically منح registrykey كيف يمكنني العمل على المسار الحقيقي في التسجيل؟

هل كانت مفيدة؟

المحلول

هذا المسار الحقيقي للغاية، وسوف يمكن تطبيق 32 بت الوصول إلى مفتاح التسجيل في هذا المفتاح الفرعي. الحصول على القيمة التي سيشاهدها تطبيق 64 بت من الناحية الفنية، ليس فقط مع .NET. سيكون لديك إلى P / Invoke RegoPenKeyex () et al حتى تتمكن من تحديد KEY_WOW64_64KEY العلم.


تحديث: موجهة في .NET 4.0 مع RegistryKey.openbasekey (). تتيح لك وسيطة RegistryView تحديد طريقة العرض التي تريدها. كنت تستخدم RegistryView.register64 في هذه الحالة.

نصائح أخرى

إنها وظيفة ما إذا كان البرنامج قد تم تجميعه أو لا يوجد أو 64 بت Windows وما إذا كان يعمل على 32 أو 64 بت Windows. معرفة ما إذا كان أدناه يساعد:

http://social.msdn.microsoft.com/forums/en-us/netfx64bit/thread/92f962d6-7f5e-4e62-ac0a-b8b0c9f552a3.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top