以Python获取当前的Windows 11版本

2024-06-01 08:58:06 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python 3.8.10中,我无法获得正确的Windows版本,我运行的是Windows 11 Insider Preview,但输出显示它是Windows 10

Bug

有解决办法吗

编辑:目前我发现检测W11的唯一方法是使用

wmic os get name

Tags: 方法name版本编辑getoswindowspreview
2条回答

^{}调用跟踪到^{},然后^{}调用C函数^{}

该C调用只是通过利用^{}+^{}Win32 API函数提取版本of ^{} file,即不是Windows本身

因此,在kernel32.dll文件的版本更改之前,它将保持Windows 10。手动检查该系统上的结果是否匹配,如果不匹配,则为CPython打开一个bug

关于这是否是正确的实现,我认为是有争议的。显然是it was in the past但现在不是了,所以我想用^{}表示^{}或者从注册表中提取它

但是,您使用的是预览版本,这也是该版本可能“不正确”的原因之一,因为Windows开发人员可能打算将其设置为10而不是11,并且系统中的某个地方有一个标志,表示它是“10”+“预览”

我最终的解决方案如下:

def IsWin11():
    if sys.getwindowsversion().build > 20000:return True
    else:return False

相关问题 更多 >