美文网首页C++
C++获取当前系统名称

C++获取当前系统名称

作者: 刘千予 | 来源:发表于2018-06-30 18:13 被阅读0次

std::string getSystemName()

{

std::string vname;

//先判断是否为win8.1或win10 

typedef void(__stdcall*NTPROC)(DWORD*, DWORD*, DWORD*);

HINSTANCE hinst = LoadLibrary(ConvertCharToLPWSTR("ntdll.dll"));

DWORD dwMajor, dwMinor, dwBuildNumber;

NTPROC proc = (NTPROC)GetProcAddress(hinst, "RtlGetNtVersionNumbers");

proc(&dwMajor, &dwMinor, &dwBuildNumber);

if (dwMajor == 6 && dwMinor == 3)  //win 8.1 

{

vname = "Microsoft Windows 8.1";

printf_s("此电脑的版本为:%s\n", vname.c_str());

return vname;

}

if (dwMajor == 10 && dwMinor == 0)  //win 10 

{

vname = "Microsoft Windows 10";

printf_s("此电脑的版本为:%s\n", vname.c_str());

return vname;

}

//下面判断不能Win Server,因为本人还未有这种系统的机子,暂时不给出 

//判断win8.1以下的版本 

SYSTEM_INFO info;                //用SYSTEM_INFO结构判断64位AMD处理器   

GetSystemInfo(&info);            //调用GetSystemInfo函数填充结构   

OSVERSIONINFOEX os;

os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);

#pragma warning(disable:4996) 

if (GetVersionEx((OSVERSIONINFO *)&os))

{

//下面根据版本信息判断操作系统名称   

switch (os.dwMajorVersion)

{                        //判断主版本号   

case 4:

switch (os.dwMinorVersion)

{                //判断次版本号   

case 0:

if (os.dwPlatformId == VER_PLATFORM_WIN32_NT)

vname = "Microsoft Windows NT 4.0";  //1996年7月发布   

else if (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)

vname = "Microsoft Windows 95";

break;

case 10:

vname = "Microsoft Windows 98";

break;

case 90:

vname = "Microsoft Windows Me";

break;

}

break;

case 5:

switch (os.dwMinorVersion)

{              //再比较dwMinorVersion的值   

case 0:

vname = "Microsoft Windows 2000";    //1999年12月发布   

break;

case 1:

vname = "Microsoft Windows XP";      //2001年8月发布   

break;

case 2:

if (os.wProductType == VER_NT_WORKSTATION &&

info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)

vname = "Microsoft Windows XP Professional x64 Edition";

else if (GetSystemMetrics(SM_SERVERR2) == 0)

vname = "Microsoft Windows Server 2003";  //2003年3月发布   

else if (GetSystemMetrics(SM_SERVERR2) != 0)

vname = "Microsoft Windows Server 2003 R2";

break;

}

break;

case 6:

switch (os.dwMinorVersion)

{

case 0:

if (os.wProductType == VER_NT_WORKSTATION)

vname = "Microsoft Windows Vista";

else

vname = "Microsoft Windows Server 2008";  //服务器版本   

break;

case 1:

if (os.wProductType == VER_NT_WORKSTATION)

vname = "Microsoft Windows 7";

else

vname = "Microsoft Windows Server 2008 R2";

break;

case 2:

if (os.wProductType == VER_NT_WORKSTATION)

vname = "Microsoft Windows 8";

else

vname = "Microsoft Windows Server 2012";

break;

}

break;

default:

vname = "未知操作系统";

}

printf_s("此电脑的版本为:%s\n", vname.c_str());

return vname;

}

else

printf_s("版本获取失败\n");

return vname;

}

相关文章

  • C++获取当前系统名称

    std::string getSystemName() { std::string vname; //先判断是否为...

  • iOS 如何获取设备相关信息

    1、获取iPhone名称: 2、获取app版本号: 3、// 获取电池电量: 4、// 获取当前系统名称: 5、/...

  • iOS 获取手机设备信息

    一、目录结构: 获取屏幕宽度与高度获取设备版本号获取iPhone名称获取app版本号获取电池电量获取当前系统名称获...

  • Java常用方法

    获取用户参数 1.获取用户桌面路径 2.获取当前工作目录 3.获取用户名称 获取系统参数 1.获取操作系统名称 2...

  • iOS获取系统基本信息

    iOS获取硬件系统信息 一.获取系统相关信息 1.获取设备名称 3.获取APP版本 4.获取设备ID 5.返回当前...

  • C++获取当前系统时间

    首先,包含如下头文件: 实现函数,分不同平台:

  • iOS获取系统信息

    iOS获取系统信息 获取版本号 获取手机序列号 获取手机型号 获取手机设备名称 获取手机别名 获取应用信息 当前应...

  • Android adb调试

    获取当前activity名称

  • phpcms后台模板标签

    phpcms后台 常见获取栏目名称和获取上级栏目名称 当前栏目id: {$catid} 当前栏目名: {$CATE...

  • C++常见编程--获取当前系统时间

    C++常见编程--获取当前系统时间文章首发https://www.cppentry.com 本文主要使用time(...

网友评论

    本文标题:C++获取当前系统名称

    本文链接:https://www.haomeiwen.com/subject/defxuftx.html