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 に答える