📄 winver.pas
字号:
{*************************************************************************}
{ 单元描述: 判断 Windows 版本 }
{ 版 本: 1.1 }
{ 修改日期: 2004-9-4 }
{*************************************************************************}
unit WinVer;
interface
uses
Windows;
type
// Windows 版本种类
TWinVersion = (wvUnknown, wvWin95, wvWin98, wvWin98SE, wvWinME,
wvWinNT, wvWin2000, wvWinXP, wvWin2003);
var
WinVersion: TWinVersion;
IsNT: Boolean;
implementation
{
TOSVersionInfo = record
dwOSVersionInfoSize: DWORD;
// Size of this data structure, in bytes. Set this member to
// sizeof(OSVERSIONINFO) before calling the GetVersionEx function.
dwMajorVersion: DWORD;
// Major version number of the operating system. This member can be one of
// the following values:
// Win95 = 4, Win98 = 4, WinMe = 4, WinNT 3.51 = 3, WinNT 4.0 = 4,
// Win2000 = 5, WinXP = 5, Win2003 Server Family = 5
dwMinorVersion: DWORD;
// Minor version number of the operating system. This member can be one of
// the following values:
// Win95 = 0, Win98 = 10, WinMe = 90, WinNT 3.51 = 51, WinNT 4.0 = 0,
// Win2000 = 0, WinXP = 1, Win2003 Server Family = 2
dwBuildNumber: DWORD;
// Build number of the operating system.
// Windows Me/98/95: The low-order word contains the build number of
// the operating. The high-order word contains the major and minor version numbers.
dwPlatformId: DWORD;
// Operating system platform. This member can be one of the following values:
// VER_PLATFORM_WIN32s = Win32s on Windows 3.1,
// VER_PLATFORM_WIN32_WINDOWS = Windows 95/Windows 98/Windows Me,
// VER_PLATFORM_WIN32_NT = Windows NT/Windows 2000/Windows XP/Windows 2003 Server Family
szCSDVersion: array[0..127] of AnsiChar;
// Pointer to a null-terminated string, such as "Service Pack 3",
// that indicates the latest Service Pack installed on the system.
// If no Service Pack has been installed, the string is empty.
// Windows Me/98/95: Pointer to a null-terminated string that indicates
// additional version information.
// For example, " C" indicates Windows 95 OSR2 and " A" indicates Windows 98 Second Edition.
end;
}
function GetWinVersion: TWinVersion;
var
OsVerInfo : TOSVersionInfo;
MajorVer, MinorVer : Integer;
begin
Result := wvUnknown;
IsNT := False;
OsVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if (GetVersionEx(OsVerInfo)) then
begin
MajorVer := OsVerInfo.dwMajorVersion;
MinorVer := OsVerInfo.dwMinorVersion;
case OsVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT : { Windows NT/2000/XP/2003 }
begin
IsNT := True;
if MajorVer <= 4 then
Result := wvWinNT
else if (MajorVer = 5) and (MinorVer = 0) then
Result := wvWin2000
else if (MajorVer = 5) and (MinorVer = 1) then
Result := wvWinXP
else if (MajorVer = 5) and (MinorVer = 2) then
Result := wvWin2003;
end;
VER_PLATFORM_WIN32_WINDOWS : { Windows 9x/ME }
begin
if (MajorVer = 4) and (MinorVer = 0) then
Result := wvWin95
else if (MajorVer = 4) and (MinorVer = 10) then
begin
if OsVerInfo.szCSDVersion[1] = 'A' then
Result := wvWin98SE
else
Result := wvWin98;
end
else if (MajorVer = 4) and (MinorVer = 90) then
Result := wvWinME;
end;
end;
end;
end;
initialization
WinVersion := GetWinVersion;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -