Python とpywin32またはwxPythonを使用して、最も簡単な方法で Windows XP と Windows Vista を区別するにはどうすればよいでしょうか?
基本的に、現在の OS が Vista の場合に True を返す関数が必要です。
>>> isWindowsVista()
True
Python とpywin32またはwxPythonを使用して、最も簡単な方法で Windows XP と Windows Vista を区別するにはどうすればよいでしょうか?
基本的に、現在の OS が Vista の場合に True を返す関数が必要です。
>>> isWindowsVista()
True
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))
pywin32 を必要としない Twisted で使用されるソリューション:
def isVista():
if getattr(sys, "getwindowsversion", None) is not None:
return sys.getwindowsversion()[0] == 6
else:
return False
Windows Server 2008 にも一致することに注意してください。
import platform
if platform.release() == "Vista":
# Do something.
また
import platform
if "Vista" in platform.release():
# Do something.