⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winver.pas

📁 === === === MiniHex 1.61 源程序说明 ============================== “$(MiniHex)Source”目录中的所有
💻 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 + -