Получить текущий выпуск Windows 11 на Python
2 ответа
решение, которое я закончил:
def IsWin11():
if sys.getwindowsversion().build > 20000:return True
else:return False
В platform.release()
называть следы win32_ver()
который затем вызывает функцию C sys_getwindowsversion_impl()
.
Этот вызов C просто извлекает версию файла, то есть не самой Windows, используя GetFileVersionInfoW()
+ VerQueryValueW()
Функции API Win32.
Так что пока
kernel32.dll
При изменении версии файла он останется Windows 10. Проверьте вручную, совпадает ли результат в этой системе, а если нет, откройте ошибку для CPython.
Относительно того, правильная это реализация или нет, я бы сказал, спорный. По-видимому, это было в прошлом, но теперь это не так, поэтому я просто использую ctypes
для GetProductInfo()
или вытащить из реестра.
Однако вы используете предварительную версию, что является одной из причин, по которой версия может быть «неправильной», потому что, возможно, разработчики Windows предполагают, что она будет по-прежнему 10 вместо 11, и где-то в системе есть флаг, говорящий, что это «10». + «превью».