以下问题包含各种检测系统是否运行Windows 10或Windows 11的方法:
然而,它们似乎都有点“顽固不化”和易碎:检查文件版本、版本号、API可用性等等。由于Windows 11即将发布(ETA 10月5日),软件供应商没有太多的时间准备。因此,我的问题是:
微软是否发布了官方推荐的方式让软件开发人员检查Windows11,如果你有正当的理由需要知道?
我知道许多程序认为它们需要检查OS版本号,而实际上,它们只应该关注它们所需要的特定特性的可用性。我完全支持这一点。但是,有一些合法的用例(例如,系统管理或软件库存工具),为了这个问题,我要求您假设一个合法的用例。
PS:这个问题是故意不局限于特定的技术;我认为任何官方支持的解决方案(使用WinAPI,WMI,COM,.NET,.)有效的答案。
发布于 2021-11-11 02:29:56
问题线程Windows 11 build仍然是10.0.22000.194在Microsoft &A上已经收到了两名微软员工的答复。在公认的答案中,有人说:
至少目前来说,操作系统22000是区分Windows 10和Windows 11的标准。
在回答下面的一条评论中,另一位补充道:
这是正确的。任何高于10.0.22000.0的都是11胜,低于10的就是赢10。
这表明,在写这篇文章的时候,在Windows 11公开发布一周后,微软还没有为软件开发人员发布官方建议。在某种程度上,这种情况可能会发生明显的变化,但在此之前,22000的版本号似乎是划分Windows10和11之间界限的标准。
发布于 2021-12-31 16:11:45
最简单的方法是获得Kernel32.dll的版本,如果主要版本为10,构建版本为>= 22000,那么您就拥有了Windows11。
请参阅我的代码:如何在Windows 11中找到Windows产品名称?
发布于 2022-08-09 03:22:49
这条单线怎么样?Powershell会更容易。
FOR /F "tokens=1,2,3 delims= " %%A IN ('wmic os get Caption') DO IF %%B EQU Windows set WVer=%%B %%C
这将返回"Windows 10“或"Windows 11”
如果您想要完整的版本,例如: PRO/Education等,那么您可以扩展它。
FOR /F "tokens=1,2,3,4 delims= " %%A IN ('wmic os get Caption') DO IF %%B EQU Windows set WVer=%%B %%C %%D
干杯
https://stackoverflow.com/questions/69373447
复制相似问题