如何以最简单的方式区分Windows XP和Windows Vista,使用Python和pywin32或wxPython?
基本上,如果当前操作系统是Vista,我需要一个被调用的函数返回True:
>>> isWindowsVista() True
monkut.. 41
Python有一个可爱的"平台"模块来帮助你.
>>> import platform >>> platform.win32_ver() ('XP', '5.1.2600', 'SP2', 'Multiprocessor Free') >>> platform.system() 'Windows' >>> platform.version() '5.1.2600' >>> platform.release() 'XP'
注意:如评论中所述,使用旧版本的python时可能不会返回正确的值.
Python有一个可爱的"平台"模块来帮助你.
>>> import platform >>> platform.win32_ver() ('XP', '5.1.2600', 'SP2', 'Multiprocessor Free') >>> platform.system() 'Windows' >>> platform.version() '5.1.2600' >>> platform.release() 'XP'
注意:如评论中所述,使用旧版本的python时可能不会返回正确的值.
我找到的最简单的解决方案是:
import sys def isWindowsVista(): '''Return True iff current OS is Windows Vista.''' if sys.platform != "win32": return False import win32api VER_NT_WORKSTATION = 1 version = win32api.GetVersionEx(1) if not version or len(version) < 9: return False return ((version[0] == 6) and (version[1] == 0) and (version[8] == VER_NT_WORKSTATION))
在Twisted中使用的解决方案,它不需要pywin32:
def isVista(): if getattr(sys, "getwindowsversion", None) is not None: return sys.getwindowsversion()[0] == 6 else: return False
请注意,它也将与Windows Server 2008匹配.