win32api - win32gui python documentation
¿Cómo verificar si el sistema operativo es Vista en Python? (5)
¿Cómo, de la manera más simple posible, distinguir entre Windows XP y Windows Vista, usando Python y pywin32 o wxPython ?
Esencialmente, necesito una función que invoque devolverá verdadero si el sistema operativo actual es Vista:
>>> isWindowsVista()
True
La solución utilizada en Twisted, que no necesita pywin32:
def isVista():
if getattr(sys, "getwindowsversion", None) is not None:
return sys.getwindowsversion()[0] == 6
else:
return False
Tenga en cuenta que también coincidirá con Windows Server 2008.
Python tiene el encantador módulo de "plataforma" para ayudarte.
>>> import platform
>>> platform.win32_ver()
(''XP'', ''5.1.2600'', ''SP2'', ''Multiprocessor Free'')
>>> platform.system()
''Windows''
>>> platform.version()
''5.1.2600''
>>> platform.release()
''XP''
NOTA: Como se menciona en los comentarios, es posible que los valores correctos no se devuelvan cuando se usan versiones anteriores de python.
La solución más simple que encontré es esta:
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))
Una idea de http://www.brunningonline.net/simon/blog/archives/winGuiAuto.py.html podría ayudar, que básicamente puede responder a su pregunta:
win_version = {4: "NT", 5: "2K", 6: "XP"}[os.sys.getwindowsversion()[0]]
print "win_version=", win_version
import platform
if platform.release() == "Vista":
# Do something.
o
import platform
if "Vista" in platform.release():
# Do something.