Python は ctypes モジュールを使用して Windows API GetVersionEx を呼び出し、現在のシステム バージョンを取得します。python32 は使用されません
"Window API を呼び出して現在のシステム バージョンを確認します"
# ctypes を介して Windows API 関数を呼び出す方法を示します。
# 作成者は、python32 で同じ機能を実現できることをすでに知っています
# セミコロンを追加します文末は完全に個人的な習慣です
# 部分的なバージョン判定のみを行い、より詳細なバージョン判定推奨システム OSVERSIONINFOEX 構造体
ctypes をインポートします;
class OSINFO(ctypes.Structure):
_fields_ = [
("dwOSVersionInfoSize",ctypes.c_long),
("dwMajorVersion",ctypes.c_long),
("dwMinorVersion) " ,ctypes.c_long),
("dwBuildNumber",ctypes.c_long),
("dwPlatformId",ctypes.c_long),
("szCSSDVersion",ctypes.c_char*128)
] ;
def GetSystemVersionString():
kernel32 = ctypes.windll.LoadLibrary("kernel32.dll");
os = OSINFO();
os.dwOSVersionInfoSize = ctypes.sizeof(os);
if kernel32.GetVersionExA(ctypes.byref(os))==0:
return "Null Version";
if os.dwPlatformId==1: #windows 95/98/me
if os .dwMajorVersion==4 および os.dwMinorVersion==0:
verStr = "windows 95";
elif os.dwMajorVersion==4 および os.dwMinorVersion==10:
verStr = "windows 98" ;
elif os.dwMajorVersion==4 および os.dwMinorVersion==90:
verStr = "windows me";
else:
verStr = "不明なバージョン";
elif os。 dwPlatformId==2: #windows vista/server 2008/server 2003/xp/2000/nt
if os.dwMajorVersion==4 および os.dwMinorVersion==0:
verStr = "windows nt 4.0";
elif os.dwMajorVersion==5 および os.dwMinorVersion==0:
verStr = "windows 2000";
elif os.dwMajorVersion==5 および os.dwMinorVersion==1:
verStr = "windows xp";
elif os.dwMajorVersion==5 および os.dwMinorVersion==2:
verStr = "windows 2003";
elif os.dwMajorVersion==6 および os.dwMinorVersion==0 :
verStr = "windows vista"; # または 2008
elif os.dwMajorVersion>=0:
verStr = "windows 7";
else:
verStr = "不明なバージョン";
else:
return "不明なバージョン";
return verStr+" build"+str(os.dwBuildNumber)+" "+ctypes.string_at(os.szCSSDVersion);
if __name__ == "__main__":
print(GetSystemVersionString());