2010-09-07 52 views
1

如同標題一樣。查看註冊表鍵值存在,但Wow6432鍵(HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion)沒有此鍵。這意味着32位應用程序無法在我的64位Windows版本上工作......這看起來不對,32位應用程序不應該在沒有修改的情況下運行?或者,這種情況下,32位應用程序必須進行調整才能在64位Windows上工作?HKLM SOFTWARE Microsoft Windows NT CurrentVersion ProductId未找到在64位Windows上運行32位應用程序

+0

32位應用程序應該運行在64位操作系統完美的罰款。你說的關鍵價值存在。如果它不在Wow6432中,它在哪裏? – 2010-09-07 07:24:52

+1

@Adrian ..在64位Windows上,此值只存在於64位註冊表中。 – Gerald 2010-09-07 08:01:04

回答

6

應用程序確實不應直接訪問此註冊表值。獲取此值的最佳方法是使用WMI獲取Win32_OperatingSystem class的SerialNumber屬性。這適用於在Win64上運行的32位應用程序。

另一種方法是使用打開註冊表鍵時KEY_WOW64_64KEY標誌(不能在Windows 2000中工作)

+0

我們獲得了一堆註冊表值......實際上,我們不一定知道它們在編碼時的確切內容。這只是一些不起作用。有沒有一種方法,我可以通過標誌來打開註冊表項,這將在32位和64位上工作...如果Windows API可以爲我執行此操作,實際上並不想爲它們編寫不同的代碼。 – 2010-09-07 08:53:58

+0

KEY_WOW64_64KEY標誌可以在32位和64位上工作。在32位Windows上,它只會被忽略(Windows 2000可能會崩潰),而在64位Windows上,它將始終讀取64位註冊表中的值。 – Gerald 2010-09-07 09:13:40

+0

感謝澄清。 Win2000對我們來說不是問題:) – 2010-09-07 09:56:38

相關問題