C++获取Windows 10的版本号

Home / C++ 百晓生 2019-3-18 3721

这里提的版本号是系统的版本号,如下图:

该命令为开始->运行->winver

获取版本号1803代码如下:

#include"stdafx.h"
#include<Windows.h>
#include<iostream>
using namespace std;
bool IsOn64BitSystem()
{
	SYSTEM_INFO sys;
	GetNativeSystemInfo(&sys);
	if (sys.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
		sys.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64)
		return true;
	else
		return false;
}
int main()
{
	HKEY hKey;
	DWORD dwDataType = REG_SZ;
	LPCTSTR subKey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
	DWORD dwSize = 32;
	LPBYTE lpReleaseId = new BYTE[dwSize];
	LPBYTE lpCurrentBuild = new BYTE[dwSize];
	LPBYTE lpUBR = new BYTE[dwSize];
	DWORD samDesired = KEY_READ;
	if(IsOn64BitSystem())samDesired |= KEY_WOW64_64KEY;
	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, subKey, NULL, samDesired, &hKey) == ERROR_SUCCESS && 
		RegQueryValueEx(hKey, "ReleaseId", NULL, &dwDataType, lpReleaseId, &dwSize) == ERROR_SUCCESS)
	{
		dwSize = 50;
		dwDataType = REG_SZ;
		if (RegQueryValueEx(hKey, "CurrentBuild", NULL, &dwDataType, lpCurrentBuild, &dwSize) == ERROR_SUCCESS)
		{
			dwSize = 50;
			dwDataType = REG_DWORD;
			if(RegQueryValueEx(hKey, "UBR", NULL, &dwDataType, lpUBR, &dwSize) == ERROR_SUCCESS)
				cout << "ReleaseId:" << lpReleaseId << "\tCurrentBuild:" << lpCurrentBuild << "\tUBR:" << *(DWORD*)lpUBR <<endl;//输出版本号
		}
	}
	RegCloseKey(hKey);
	delete lpReleaseId;
	delete lpCurrentBuild;
	delete lpUBR;
	getchar();
	return 0;
}

运行结果:

ReleaseId:1803  CurrentBuild:17134      UBR:590

本文链接:https://www.it72.com/12517.htm

推荐阅读
最新回复 (0)
返回