我正在寻找一种非常简单的方法来确定客户使用的Windows版本是32位还是64位。我知道有一些方法可以使用.NEt但我希望避免使用它们。我只是想使用类似下面的伪代码,并想知道这个方法是否可靠。
If Registry Key exists (HKEY_LOCAL_MACHINE\Software\WOW6432Node)
Then Assume 64bit
else
Assume 32bit
谢谢!
编辑:更具体地说,我知道有几种不同的方法可以实现查找操作系统是32位还是64位的目标。但我想知道上述单独的方法是否可靠。
答案 0 :(得分:5)
我假设您正在以32位进程运行(否则您已经知道了答案)。问题的解决方案是IsWow64Process或GetNativeSystemInfo。
答案 1 :(得分:0)
您可以检查环境变量PROCESSOR_ARCHITECTURE。如果它是AMD64,那么你使用64位操作系统,但这不安全(阅读评论后)
但为了安全起见,您可以从blog post调用此Raymond Chen中提到的Win32 API,IsWow64Process。
答案 2 :(得分:0)
为什么不检查文件夹C:\Program Files (x86)
是否存在?这将确保它是64位操作系统。
答案 3 :(得分:0)
我希望这可以解决我在Windows 8.1 64位上尝试过的问题,它会为我返回值AMD64
import _winreg
def get_registry_value(key, subkey, value):
key = getattr(_winreg, key)
handle = _winreg.OpenKey(key, subkey )
(value, type) = _winreg.QueryValueEx(handle, value)
return value
windowsbit = get_registry_value(
"HKEY_LOCAL_MACHINE",
"SYSTEM\\CurrentControlSet\Control\\Session Manager\\Environment",
"PROCESSOR_ARCHITECTURE")
print windowsbit
如果您正在使用64位Windows机器,则运行此代码,这将打印AMD64
或者如果您正在使用32位,它将打印AMD32
我希望这段代码可以帮助完全解决这个问题