2012-03-19 84 views
0

我在註冊表中創建了一個子項HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector。當我沒有啓動應用程序運行時使用Visual Studio的即時窗口加載此子項時,我可以讀取子項。無法繞過註冊表虛擬化

但是,當我的應用程序查找HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector時,它無法找到它。它甚至找不到HKEY_LOCAL_MACHINE\SOFTWARE\MyApp。就好像還有一個不同的

但是,當我在調試模式下運行應用程序並暫停時,完全相同的代碼無法找到HKEY_LOCAL_MACHINE\SOFTWARE\MyApp,更不用說HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector

經過一番探索,看起來我已經成爲註冊表虛擬化的受害者。所以我添加了一個清單,使應用程序需要管理員權限(UAC對話框),但註冊表虛擬化仍在進行。微軟關於此事的文件聲稱,情況並非如此。幫幫我!

+0

也許你受到Wow64註冊表重定向的影響,而不是(或?)註冊表虛擬化:http://msdn.microsoft.com/en-us/library/aa384253.aspx Windows確實有很多煙霧和訪問註冊表時正在進行的鏡像。 – 2012-03-19 05:24:23

+0

是的,WoW64是罪魁禍首。出於某種原因,程序集針對x86而不是Any CPU。我改變它到任何CPU和它的工作。把你的評論變成答案,我會接受它。謝謝:) – 2012-03-19 13:45:24

+0

@Steve你真的不想要求管理員權限。 – 2012-03-19 13:50:03

回答

1

也許你會被WOW64註冊表重定向(?有或沿)的影響,而不是註冊表虛擬化:

的Windows肯定有很多霧裏看花去訪問時,對註冊表。

+0

現在構建爲任何CPU(x86)將WoW64帶出圖片。問題解決了。謝謝。 – 2012-03-19 14:47:10