怎样利用判断操作系统的版本?

特招 2004-04-13 08:59:50
怎样利用C++Builder编判断操作系统版本的程序?
例如:win98,win2000,win2000server
...全文
124 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2004-04-13
  • 打赏
  • 举报
回复
给你个长的。

//---------------------------------------------------------------------------
#include "stdio.h"
bool GetOSVersion(String &strVersion,String &strPlatform,
String &strBuildNumber,String &strCSDVersion)
{
OSVERSIONINFO info;
bool bIsNT;
ZeroMemory(&info, sizeof(OSVERSIONINFO));
info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (!GetVersionEx(&info))
return false;
strVersion=String((int)info.dwMajorVersion) + "." + String((int)info.dwMinorVersion);
strBuildNumber=String((int)info.dwBuildNumber);
strCSDVersion=String(info.szCSDVersion);

if(GetVersionEx(&info))
{
strPlatform = "Windows";
bIsNT = (info.dwPlatformId == VER_PLATFORM_WIN32_NT);
if(bIsNT)
{
if((info.dwMajorVersion==5) && (info.dwMinorVersion==0)) //5.00.2195
strPlatform += " 2000";
else if((info.dwMajorVersion==5) && (info.dwMinorVersion==1)) //5.01.xxxx
strPlatform += " XP";
else if((info.dwMajorVersion==5) && (info.dwMinorVersion==2)) //5.02.xxxx
strPlatform += " 2003";
else //Other Windows NT Kernel OS
strPlatform += " NT";
}
else //None WinNT
{
if(info.dwMajorVersion==4) //Win9x/WinME
{
if(info.dwMinorVersion==0) //Win95 = 4.00.950
{
strPlatform += " 95";
if(LOWORD(info.dwBuildNumber)>=1111) //Win95 OSR2 = 4.00.1111
strPlatform += " OSR2";
}
else if(info.dwMinorVersion==10) //Win98 = 4.10.1998
{
strPlatform += " 98";
if(LOWORD(info.dwBuildNumber)>=2222) //Win98 SE = 4.10.2222
strPlatform += " SE";
}
else if(info.dwMinorVersion==90) //WinME = 4.90.3333
{
strPlatform += " ME";
}
}
}
}
return true;
}
//---------------------------------------------------------------------------
// 调用举例:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String strVersion, strPlatform, strBuildNumber, strCSDVersion;
GetOSVersion(strVersion, strPlatform, strBuildNumber, strCSDVersion);
ShowMessage("当前系统为:" + strPlatform + " Ver: " + strVersion + " Build:" + strBuildNumber);
}
//---------------------------------------------------------------------------
特招 2004-04-13
  • 打赏
  • 举报
回复
Thanks

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧