windows通过c++获取操作系统主要分两种:
1、windows是8.1版本以下版本:获取操作系统可以通过windows提供的api中GetVersionEx函数来获取
2、windows是8.1版本及以上:获取操作系统主要通过RtlGetNtVersionNumbers法来获取
代码如下:
#include <Windows.h>
#include <string>
#include <iostream>
#define WINVERSION_2012 4026541440 //Microsoft Windows Server 2012 R2 的BuildNumber号
#define WINVERSION_10 4026546233 //Microsoft Windows 10 的BuildNumber号
using namespace std;
/*
**函数:GetSystemName()
**功能:获取8.1以下版本操作系统名称
*/
void GetSystemName(string& osname)
{
SYSTEM_INFO info;
GetSystemInfo(&info);
OSVERSIONINFOEX os;
os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osname = _T("Unknown Microsoft Windows Version");
if(GetVersionEx((OSVERSIONINFO *)&os))
{
//下面根据版本信息判断操作系统名称
cout<<"mainVersion:"<<os.dwMajorVersion<<";secondVersion:"<<os.dwMinorVersion<<endl;
1、windows是8.1版本以下版本:获取操作系统可以通过windows提供的api中GetVersionEx函数来获取
2、windows是8.1版本及以上:获取操作系统主要通过RtlGetNtVersionNumbers法来获取
代码如下:
#include <Windows.h>
#include <string>
#include <iostream>
#define WINVERSION_2012 4026541440 //Microsoft Windows Server 2012 R2 的BuildNumber号
#define WINVERSION_10 4026546233 //Microsoft Windows 10 的BuildNumber号
using namespace std;
/*
**函数:GetSystemName()
**功能:获取8.1以下版本操作系统名称
*/
void GetSystemName(string& osname)
{
SYSTEM_INFO info;
GetSystemInfo(&info);
OSVERSIONINFOEX os;
os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osname = _T("Unknown Microsoft Windows Version");
if(GetVersionEx((OSVERSIONINFO *)&os))
{
//下面根据版本信息判断操作系统名称
cout<<"mainVersion:"<<os.dwMajorVersion<<";secondVersion:"<<os.dwMinorVersion<<endl;