2012-09-18 43 views

回答

2

的常用方法用C做,这是通过_WIN32_WINNT宏,其值记录heresys.getwindowsversion()可以间接用于确定_WIN32_WINNT,因为它暴露了所有必要的位。

import sys 

WIN_8 = (6, 2, 0) 
WIN_7 = (6, 1, 0) 
WIN_SERVER_2008 = (6, 0, 1) 
WIN_VISTA_SP1 = (6, 0, 1) 
WIN_VISTA = (6, 0, 0) 
WIN_SERVER_2003_SP2 = (5, 2, 2) 
WIN_SERVER_2003_SP1 = (5, 2, 1) 
WIN_SERVER_2003 = (5, 2, 0) 
WIN_XP_SP3 = (5, 1, 3) 
WIN_XP_SP2 = (5, 1, 2) 
WIN_XP_SP1 = (5, 1, 1) 
WIN_XP = (5, 1, 0) 

def get_winver(): 
    wv = sys.getwindowsversion() 
    if hasattr(wv, 'service_pack_major'): # python >= 2.7 
     sp = wv.service_pack_major or 0 
    else: 
     import re 
     r = re.search("\s\d$", wv.service_pack) 
     sp = int(r.group(0)) if r else 0 
    return (wv.major, wv.minor, sp) 

用法:

if get_winver() >= WIN_XP_SP3: 
    ... 
相关问题