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

该命令为开始->运行->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