GetProductInfo API缺失部分Windows 10版本的产品类型返回值求解
缺失的版本对应返回值
你需要的两个Windows 10版本对应的GetProductInfo返回值如下:
- Windows 10 Pro Education(专业教育版):十六进制值为
0x000000A1 - Windows 10 Enterprise 2019 LTSC(2019长期服务通道企业版):十六进制值为
0x0000007F
补全后的业务代码示例
你可以将对应值补充到switch分支中:
switch (ed) { case PRODUCT_PROFESSIONAL: edition = "Windows 10 Pro"; break; case PRODUCT_PRO_WORKSTATION: edition = "Windows 10 Pro for Workstations"; break; case PRODUCT_EDUCATION: edition = "Windows 10 Education"; break; case PRODUCT_ENTERPRISE: edition = "Windows 10 Enterprise"; break; case 0x0000007F: edition = "Windows 10 Enterprise 2019 LTSC"; break; case 0x000000A1: edition = "Windows 10 Pro Education"; break; default: edition = "Unknown"; break; }
注意事项
- 上述两个常量值均已在Windows SDK的
winnt.h头文件中定义,仅官方在线文档未更新完整枚举列表。 GetVersionExAPI从Windows 8.1开始已被标记为弃用,若你的程序没有嵌入Windows 10/11对应的兼容性manifest,调用该API会返回Windows 8的版本号(6.2),导致检测逻辑失效。如需保证兼容性,需要在项目清单文件中添加对应Windows版本的兼容GUID声明。- 0x0000007F是所有LTSC版本通用的返回值,若要区分2019 LTSC和更高版本的LTSC(如2021 LTSC),需要配合
osVersionInfo.dwBuildNumber判断:2019 LTSC对应Build号为17763,2021 LTSC对应Build号为19044。
内容的提问来源于stack exchange,提问作者RBT
相关产品推荐
相关产品推荐

