我如何获得"winver"?



我试图获得cmd命令"winver"中呈现的版本号,在我的情况下是20H2。我如何得到与代码?我还没有找到任何关于这个话题的文章。

IMHO,您维护构建号及其字符串的映射,如

#include <iostream>
#include <map>
int main() {
std::map<int,std::string> builds = {{19042, "20H2"}, {19043, "21H1"}};
std::cout << builds.at(19042) << std::endl;
return 0;
}

,您将获得GetVersion()GetVersionEx()的构建号。请参见Wikipedia获取列表。请注意,版本号可能取决于兼容性设置,即Windows可能对您说谎。

IMHO微软建议检查一个系统DLL的版本,如kernel32.dllGetFileVersionInfo()以获得真正的版本。

如果你不喜欢这些,从注册表中获取名称可能是你正在寻找的选项:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionDisplayVersion