You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中使用IsWindowsVersionOrGreater检测Windows 11需要传入什么参数

调用参数及注意事项

首先明确:IsWindowsVersionOrGreater 本身仅支持校验系统主版本号、次版本号、服务包主版本号,而Windows 11和Windows 10的主版本号均为10、次版本号均为0、无服务包版本区分,仅靠该API的三个参数无法直接区分Win10和Win11,你需要配合Build版本号校验实现精准检测。

第一步:调用IsWindowsVersionOrGreater过滤低版本系统

传入参数如下:

  • wMajorVersion:10
  • wMinorVersion:0
  • wServicePackMajor:0
    调用代码示例:
if (!IsWindowsVersionOrGreater(10, 0, 0)) {
    // 低于Win10系统,直接走旧版UI逻辑
    return false;
}

第二步:补充校验系统Build版本号

Win11的首个正式发布版本Build号为22000,只要系统Build号大于等于22000即可判定为Win11及以上系统。
获取Build号可以用RtlGetVersion或者GetVersionEx(注意要在程序manifest中添加Win11的兼容声明,否则系统会出于兼容旧程序的目的返回旧版本号,导致检测失效),示例逻辑:

OSVERSIONINFOEXW osvi = { sizeof(osvi) };
GetVersionExW((LPOSVERSIONINFOW)&osvi);
if (osvi.dwBuildNumber >= 22000) {
    // 判定为Win11及以上系统,走Win11专属UI逻辑
} else {
    // 判定为Win10系统,走旧版UI逻辑
}

重要提示:manifest中必须包含Windows 11对应的兼容GUID,否则无法获取到真实的系统版本号。

内容的提问来源于stack exchange,提问作者MAG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:54:04