获取 Windows 版本号单元

本文来自delphi盒子。作者:Popzone

 

 

unit uWindowsVersion;

interface

uses
  Windows, SysUtils;

const
  TStrWindowsVersion : array [0..8] of String = ('Windows 3.x',
          'Windows 95',
          'Windows 98/Me',
          'Windows Nt 4.0',
          'Windows 2000',
          'Windows XP',
          'Windows Server 2003',
          'Windows Vista',
          'Windows Server 2008');


  Win3x    = $03000000;
  Win95    = $04000000;
  Win98ME  = $04010000;
  WinNT40  = $04020000;
  Win2000  = $05000000;
  WinXP    = $05010000;
  Win2003  = $05020000;
  WinVista = $06000000;
  Win2008  = $06000100;

TYPE
  TWinVer = Packed Record
     dwVersion : DWORD;
     sVerSion : String;
  end;
  

function GetWindowsVersion: TWinVer;


implementation


function GetWindowsVersion: TWinVer;
begin
  case  Win32Platform of
    VER_PLATFORM_WIN32s:      // Windows 3.X平台
      begin
        Result.dwVersion := Win3x;
        Result.sVerSion  := TStrWindowsVersion[0];
      end;

    VER_PLATFORM_WIN32_WINDOWS:      // Windows 9x/ME 平台
        if ((Win32MajorVersion > 4 ) or
          ((Win32MajorVersion = 4 ) and (Win32MajorVersion > 0 ))) then
          begin
          Result.dwVersion := win98ME;
          Result.sVerSion  := TStrWindowsVersion[2];
          end
        else
          begin
          Result.dwVersion := Win95;
          Result.sVerSion  := TStrWindowsVersion[1];
          end;

    VER_PLATFORM_WIN32_NT:          // Windows NT 平台
       case Win32MajorVersion of    //
         4: begin
          Result.dwVersion := WinNT40;
          Result.sVerSion  := TStrWindowsVersion[3];
          end;
         5: begin
          case Win32MinorVersion of    //
          0: begin
          Result.dwVersion := Win2000;
          Result.sVerSion  := TStrWindowsVersion[4];
          end;
          1: begin
          Result.dwVersion := WinXP;
          Result.sVerSion  := TStrWindowsVersion[5];
          end;
          2: begin
          Result.dwVersion := Win2003;
          Result.sVerSion  := TStrWindowsVersion[6];
          end;
          end;    // case
          end;
         6: begin
          case Win32BuildNumber  of    //
          6000: begin
          Result.dwVersion := WinVista;
          Result.sVerSion  := TStrWindowsVersion[7];
          end;
          6001: begin
          Result.dwVersion := Win2008;
          Result.sVerSion  := TStrWindowsVersion[8];
          end;
          end;    // case
          end;
       end;    // case
  end;
end;

end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi获取Windows版本号、描述等信息,可获取到主版本号、次版本号、系统描述、系统平台、构建号等,相关代码如下:   //设置版本信息结构的大小    GetVersionEx(OSVI);    //获取版本信息    is98orlater:=    //判断是否98或以后版本    (osvi.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS) and    ((osvi.dwMajorVersion>4) or    ((osvi.dwMajorVersion=4) and (osvi.dwMinorVersion>0)));   //DOWNLOAD BY HTTP://WWW.CODEFANS.NET    //下面开始显示信息    case OSVI.dwPlatformId of    //根据OSVI.dwPlatformId的数值的不同显示具体的平台描述    VER_PLATFORM_WIN32s:    // Windows 3.1平台    s:='Windows 3.1';    VER_PLATFORM_WIN32_WINDOWS:    // Windows 95/98平台    if(is98orlater) then    //98    s:='Windows 98'    else    //95    s:='Windows 95';    VER_PLATFORM_WIN32_NT:    // Windows NT平台    s:='Windows NT/XP';    end;    Edit1.Text:=s;    Edit2.Text:=IntToStr(OSVI.dwMajorVersion);    Edit3.Text:=IntToStr(OSVI.dwMinorVersion);    case OSVI.dwPlatformId of    //根据平台的不同具体处理OSVI.dwBuildNumber信息    VER_PLATFORM_WIN32_WINDOWS:    // Windows 95/98平台则取OSVI.dwBuildNumber的低位字    Edit4.Text:=IntToStr(LOWORD(OSVI.dwBuildNumber));    VER_PLATFORM_WIN32_NT:    // Windows NT平台则取所有位的值    Edit4.Text:=IntToStr(OSVI.dwBuildNumber);    else    Edit4.Text:='';   // Windows 3.1平台此值位空    end;    Edit5.Text:=OSVI.szCSDVersion;   end;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值