GetVersionExというAPIを使うと簡単に判別することができます。URLのソースコードが参考になるのではないでしょうか?
OSVERSIONINFO構造体を使います
osInfo.dwPlatformId が VER_PLATFORM_WIN32_NT なら、NT系、
osInfo.dwMajorVersionとosInfo.dwMinorVersion でOSVersionを取得できます
5,1ならXP
5,0なら2000という具合です
例
var
osInfo: OSVERSIONINFO;
begin
osInfo.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
if GetVersionEx(osInfo) then
if osInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
Edit1.Text:='WinNT'
else
Edit1.Text:='Win32';
Edit1.Text:=Edit1.Text+IntToStr(osInfo.dwMajorVersion)+'.'+IntToStr(osInfo.dwMinorVersion);
end;
ありがとうございました
http://support.microsoft.com/default.aspx?scid=kb;ja;225013
[INFO] プログラムから Windows のバージョンをチェックする方法
URLはVC++のソースですが、言語仕様による書き方が若干違うだけで、Delphiでもほぼ同じです。
判定基準は以下を参考
■Windows 95
dwPlatformId 400
dwMajorVersion 4
dwMinorVersion 0
■Windows 98
dwPlatformId 400
dwMajorVersion 4
dwMinorVersion 10
■Windows Me
dwPlatformId 400
dwMajorVersion 4
dwMinorVersion 90
■Windows NT 3.51
dwPlatformId 500
dwMajorVersion 3
dwMinorVersion 51
■Windows NT 4.0
dwPlatformId 500
dwMajorVersion 4
dwMinorVersion 0
■Windows 2000
dwPlatformId 500
dwMajorVersion 5
dwMinorVersion 0
■Windows XP
dwPlatformId 500
dwMajorVersion 5
dwMinorVersion 1
■Windows .NET Server
dwPlatformId 500
dwMajorVersion 5
dwMinorVersion 1
ありがとうございました