0

我可以在我的注册表编辑器中看到值,路径是 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion.

我想打印我可以看到的产品名称是 Windows 8,但是当我运行我的程序以在我的 64 位笔记本电脑上获取 Windows 版本时:

def get_registry_value(key, subkey, value):
  import _winreg
  key = getattr(_winreg, key)
  handle = _winreg.OpenKey(key, subkey)
  (value, type) = _winreg.QueryValueEx(handle, value)
  return value

def os_version():
  def get(key):
    return get_registry_value(
        "HKEY_LOCAL_MACHINE", 
        "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
        key)
  os = get("ProductName")
  sp = get("CSDVersion")
  build = get("CurrentBuildNumber")
  return "%s %s (build %s)" % (os, sp, build)

我正进入(状态

WindowsError:错误[2]“系统找不到指定的文件”

所以我将代码修改为

key = getattr(_winreg, key)
handle = _winreg.OpenKey(key, subkey ,0 ,_winreg.KEY_READ | _winreg.KEY_WOW64_64KEY)

但我仍然遇到同样的错误我做错了哪一部分?我可以做些什么来获得我的操作系统版本?

4

1 回答 1

0

在 Windows 7 上非常适合我...

in > print os_version()
out > Windows 7 Enterprise Service Pack 1 (build 7601)
于 2014-05-22T21:11:10.400 回答