2011-08-16 96 views
1

我嘗試訪問我知道存在的特定註冊表項。我用這樣的方式:在C中訪問註冊表#

RegistryKey rk = Registry.LocalMachine; 
RegistryKey sk1 = rk.OpenSubKey(KeyName,false); 

如果我 @ 「軟件\微軟\的Windows \ CurrentVersion \ Run中」替換 '鍵名',例如,它工作正常。
如果我嘗試任何其他路徑,我複製粘貼從註冊表 @「SOFTWARE \ ATI技術\安裝\南橋\ ATI_AHCI_RAID」它返回null。

我workiung在WIN7 64位與86計劃

回答

3

在Windows 64位(視窗2003+,XP及更高版本64位)有一個透明註冊表重定向的發生提供單獨的邏輯32位和64位註冊表調用的視圖。

閱讀下面的鏈接瞭解更多信息;這是重要的信息要知道。

註冊表重定向器通過 分離32位和64位應用程序提供關於WOW64註冊表 的某些部分的單獨的邏輯視圖。註冊表重定向程序截取32位和64位的註冊表調用到其各自的邏輯註冊表視圖,並將它們映射到相應的物理註冊表位置。進程 進程是透明到應用程序。因此,32位的 應用程序可以訪問註冊表數據,就好像它在32位的 Windows上運行一樣,即使數據存儲在64位的Windows的不同位置上。

MSDN Registry Redirector