Sayfalar

Translate

1 Mayıs 2015 Cuma

C# - 32 bit Uygulama ile 64 bit Registry Okuma

Windows 64 bit İşletim Sistemlerinde Registry ikiye ayrılmış. Biri x84 uygulamalar için diğer x64 uygulamalar için. Registry e bir bilgi koyuyoruz ve C# x86 uygulamamızı o bilgiyi okuyacak şekilde kodluyoruz.
















Yalnız uygulamamızı çalıştırdığımızda Key bulunamadı hatası alıyor. Bunun sebebi bizim regedit ekranını kullanarak oluşturduğumuz Key in x64 Registry de oluşuyor olması ve x86 uygulamaların buraya erişiminin olmamasıdır.

Bu gibi durumlar için Microsoft x64 Registry e aşağıdaki dizini koymuş:

"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node"

Biz kodumuza okuması için "HKEY_LOCAL_MACHINE\SOFTWARE\DenemeKey" path ini verdiğimizde C# kodumuz işletim sistemi tarafından "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DenemeKey" path ine yönlendirilmekte.

Yani, 64 bit işletim sistemi üzerinde 86 bit olarak derlenmiş C# kodu ile registry den bilgi okumak istediğimizde bu bilgileri aşağıdaki path altında oluşturmamız gerekiyor.

"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node"

Kaynak: https://dotnetgalactics.wordpress.com/2010/05/10/accessing-64-bit-registry-from-a-32-bit-process/

Hiç yorum yok:

Yorum Gönder