怎样识别操作系统的版本?(20分)

  • 主题发起人 主题发起人 中原象
  • 开始时间 开始时间

中原象

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi怎样知道当前的操作系统是win95 win98还是winnt?
 
BOOL GetVersionEx(

LPOSVERSIONINFO lpVersionInformation // pointer to version information structure
);
 
简单一点的 GetVersion() 就可以了

var
v:DWORD

v:=GetVersion();

if(v and 0x80000000)then
//is NT
else
win9x
 
function IsWindows9x:Boolean;
var
version:TOSVERSIONINFO;
begin
Result:=false;
version.dwOSVersionInfoSize:=sizeof(tOSVersionInfo);
if GetVersionEx(version) then
if version.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS then Result:=true;
end;
 
有没搞错,delphi有现成的全局变量不用,非要自己高?

var <b>Win32Platform</b>: Integer = 0;
Value Meaning
------------------------------
VER_PLATFORM_WIN32s System is Win32s.
VER_PLATFORM_WIN32_WINDOWS System is Windows 95.
VER_PLATFORM_WIN32_NT System is Windows NT.
 
可是现有变量不能分清是95还是98,我也受此问题困扰
 
var
v:DWORD;
major,minor:BTYE;

v:=GetVersion();

if(v and 0x80000000)then
//is NT
else
begin
major:=BYTE(v);
minor:=WORD(v) shr 8;
if major<4 then
//win32s(win3.1)
else
begin
if major=4 then
begin
if(minor<1)then
//win95
else
//win98
end
else
//更高版,不知道什么东西了
end
end
 
多人接受答案了。
 
后退
顶部