GetVersionExを使用します。GetVersionExを呼び出すと、OSVERSIONINFOに各種バージョン情報が得られます。SP6以降、Windows2000以降のOSではOSVERSIONINFOEX構造体も使用できます(それ以外のOSおよびWindows95,98ではこの構造体を指定してのGetVersionEx呼び出しはエラーとなる)。使用できます(Windows2000以降)。メンバで判定できます。3.5,3.51,4.0Windows2000などNT系のOS。VER_PLATFORM_WIN32_WINDOWSあれば、Windows95,Window98などのNTでないWin32系OSとなります。バージョン番号、ビルド番号それぞれの種類が分かった上で、さらにバージョンを見分けたい場合は、バージョン番号(dwMajorVersion、dwMinorVersion)、ビルド番号(dwBuildNumber)でを使用して見分けます。NT系のOSであれば、NT4.0は4.0.1381、Windows2000は5.0.2195。95,98系であれば、95の初期バージョンは4.0.950、95OSR2は4.0.1111、OSR2.5は4.0.1212、98は4.10.1998、98SEは4.10.2222、Meは4.10.3000などです。簡単に表にすると以下のようになります。0サービスパック情報NT系のOSのサービスパック情報はszCSDVersionメンバに文字列で得られます。3"などの文字列が得られます。95,98,Meではここに"A"とか"C"と言う文字列が入っています。SE"というような事がわかります。OSVERSIONINFOEXを使用できる場合、wServicePackMajor,wServicePackMinorの値からも得ることができます。OSのエディション情報ServerかWorkstationか、さらにXPのHome,Professionalなどのような、OSのエディションを見分けるにはOSVERSIONINFOEXのwProductTypeとwSuiteMaskを使用します。wProductTypeが、VER_NT_WORKSTATIONであればWorkstation、VER_NT_SERVERであればServerエディションです。Editionであると分かります。ServerのMinorVersionは2になった。XPのエディションの見分け方で、誤解を受ける表記だったのを訂正。m-nishikawa@nifty.comまで。