2014-05-22 31 views
0

我可以看到我的註冊表編輯器中的值,路徑是 。在windows 8上訪問windows版本的Python _winreg錯誤

我想打印的產品名,我可以看到的是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: Error[2] "The system cannot find the file specified"

,所以我修改了代碼爲

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

,但我仍然得到同樣的錯誤 我做錯了哪一部分?我能做些什麼來獲取我的操作系統版本?

回答

0

完全爲我工作在Windows 7上......

in > print os_version() 
out > Windows 7 Enterprise Service Pack 1 (build 7601) 
+0

爲Windows 8 64位犯規工程 – rishabhr0y