2011-11-20 45 views
1

HKLM \ SOFTWARE子鍵我在寫這個程序,將需要訪問註冊表中拉機上的一些信息。它應該始終由本地管理員組中的某個人運行,並且將在Server 2003和2008計算機上使用。基本上它在我主要寫在盒子上的絕大部分工作正常,以及我的測試2003和2008服務器。問題是,當我在我的筆記本電腦上運行Windows 7時,似乎無法將其用於測試,因爲我在嘗試讀取或寫入HKEY_LOCAL_MACHINE \ SOFTWARE下的註冊表時遇到錯誤。無法訪問Win7上

我的身份登錄誰是本地管理員用戶,我可以運行註冊表編輯器創建一個密鑰,如test9999。如果我使用以下它將始終返回null。

的RegistryKey密押= Registry.LocalMachine.OpenSubKey( 「SOFTWARE \ test9999」);

我試圖丟棄的子項,軟件會回來,但我一直沒能得到下面的事情。

我使用MS VC#Express和我試着運行它「以管理員身份」,以及試圖運行.exe是同樣的方式,但它仍繼續低於軟件什麼返回null。我錯過了什麼?

+1

你或許運行的32位進程的操作系統的64位版本? 64位操作系統上的32位進程看到一個稍微不同的註冊表。 – zmbq

+0

2008年我測試代碼的服務器也是64位,它似乎工作得很好,所以我沒有想到提及這一點。我最初編寫的XP機器是32位,而我試圖用來測試它的Win 7機器是64位,並且是導致此問題的原因。我如何檢查? – LazarusG

回答

0

原因在64位Windows上運行的32位進程的註冊表重定向行爲在Windows 7和Windows 2008 R2中發生了變化,這可以解釋爲什麼它可以在Windows 2008(不是我假設的R2)上運行,而不是在Windows 7上運行。

瞭解更多關於在這裏:​​http://msdn.microsoft.com/en-us/library/aa384232(v=vs.85).aspx

+0

好的,設置一個2008 R2的盒子進行測試,看起來就是這個樣子。謝謝 – LazarusG