我正在使用64位Windows,並且我的應用程序以提升的特權運行。我有以下非常簡單的代碼問題:C#在64位操作系統上讀取錯誤的註冊表數據
myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
if (myKey != null)
{
string[] HKLMvaluenames = myKey.GetValueNames();
}
但由於某些原因HKLMvaluenames陣列中填充值從以下注冊表項:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
有沒有解決這個問題的方法嗎?
由於外部/非託管依賴關係或其他原因,您的代碼是否必須以32位模式運行? – 2010-05-16 12:53:04
您的應用程序是否編譯爲32位應用程序? Wow64是64位Windows操作系統的32位兼容層。 – Oded 2010-05-16 12:53:36
@Nick:我不必在32位運行,但我希望我的應用程序能夠在32位操作系統上工作(這非常重要)。 @Oded:是的,我知道是什麼。我的應用程序使用VX2010 Express進行編譯,所以我想我甚至不能選擇它如何編譯。我可以在某處查看嗎? – baal80 2010-05-16 13:07:22