如下,或者你直接查找注册表相应键值。 然后,你要 给分! function myGetVersion: shortString; var VersionInfo : TOSVersionInfo; OSName : String; begin // set the size of the record VersionInfo.dwOSVersionInfoSize := SizeOf( TOSVersionInfo ); if Windows.GetVersionEx( VersionInfo ) then begin with VersionInfo do begin case dwPlatformId of VER_PLATFORM_WIN32s : OSName := 'Win32s'; VER_PLATFORM_WIN32_WINDOWS : OSName := 'Windows 95'; VER_PLATFORM_WIN32_NT : OSName := 'Windows NT'; end; // case dwPlatformId Result := OSName + ' Version ' + IntToStr( dwMajorVersion ) + '.' + IntToStr( dwMinorVersion ) + #13#10' (Build ' + IntToStr( dwBuildNumber ) + ': ' + szCSDVersion + ')'; end; // with VersionInfo end // if GetVersionEx else Result := ''; end;
type TOSVersionRec = record // 操作系统版本参数类型 OsName: string; // 操作系统名称 OsMajorVersion: cardinal; // 操作系统主版本号 OsMinorVersion: cardinal; // 操作系统次版本号 end; // 得到操作系统版本参数 // 返回: 操作系统版本参数(记录类型) function GetOsVersion: TOSVersionRec; var OS : TOsVersionInfo; begin Os.dwOSVersionInfoSize := SizeOf(OS); GetVersionEx(@OS); with result do begin OsMajorVersion := Os.dwMajorVersion; OsMinorVersion := Os.dwMinorVersion; case Os.dwPlatformId of VER_PLATFORM_WIN32s : OsName := 'Microsoft Windows 3.1x/32s'; VER_PLATFORM_WIN32_WINDOWS : if (OsMajorVersion = 4) and (OsMinorVersion > 0) then OsName := 'Microsoft Windows 98' else OsName := 'Microsoft Windows 95'; VER_PLATFORM_WIN32_NT : if OsMajorVersion = 5 then if OsMinorVersion > 0 then OsName := 'Microsoft Windows XP' else OsName := 'Microsoft Windows 2000' else OsName := 'Microsoft Windows NT'; else OsName := 'UnKnow System'; end; end; end;
很简单了,一个函数搞定: if win32platform=ver_platform_win32_nt then ...2000 else ...98; 给分吧!
然后,你要
给分!
function myGetVersion: shortString;
var
VersionInfo : TOSVersionInfo;
OSName : String;
begin
// set the size of the record
VersionInfo.dwOSVersionInfoSize := SizeOf( TOSVersionInfo ); if Windows.GetVersionEx( VersionInfo ) then
begin
with VersionInfo do
begin
case dwPlatformId of
VER_PLATFORM_WIN32s : OSName := 'Win32s';
VER_PLATFORM_WIN32_WINDOWS : OSName := 'Windows 95';
VER_PLATFORM_WIN32_NT : OSName := 'Windows NT';
end; // case dwPlatformId
Result := OSName + ' Version ' + IntToStr( dwMajorVersion ) + '.' + IntToStr( dwMinorVersion ) +
#13#10' (Build ' + IntToStr( dwBuildNumber ) + ': ' + szCSDVersion + ')';
end; // with VersionInfo
end // if GetVersionEx
else
Result := '';
end;
TOSVersionRec = record // 操作系统版本参数类型
OsName: string; // 操作系统名称
OsMajorVersion: cardinal; // 操作系统主版本号
OsMinorVersion: cardinal; // 操作系统次版本号
end;
// 得到操作系统版本参数
// 返回: 操作系统版本参数(记录类型)
function GetOsVersion: TOSVersionRec;
var
OS : TOsVersionInfo;
begin
Os.dwOSVersionInfoSize := SizeOf(OS);
GetVersionEx(@OS);
with result do begin
OsMajorVersion := Os.dwMajorVersion;
OsMinorVersion := Os.dwMinorVersion;
case Os.dwPlatformId of
VER_PLATFORM_WIN32s :
OsName := 'Microsoft Windows 3.1x/32s';
VER_PLATFORM_WIN32_WINDOWS :
if (OsMajorVersion = 4) and (OsMinorVersion > 0) then
OsName := 'Microsoft Windows 98'
else
OsName := 'Microsoft Windows 95';
VER_PLATFORM_WIN32_NT :
if OsMajorVersion = 5 then
if OsMinorVersion > 0 then OsName := 'Microsoft Windows XP'
else OsName := 'Microsoft Windows 2000'
else
OsName := 'Microsoft Windows NT';
else
OsName := 'UnKnow System';
end;
end;
end;
if win32platform=ver_platform_win32_nt then
...2000
else
...98;
给分吧!