Почему Windows 10 возвращает номер версии 6.3?

8

В Windows 10, код VB.NET Environment.OS.VersionStringвыводит Microsoft Windows NT 6.3.9600.0. Согласно документации Microsoft , номер версии Windows 10 таков 10.0, так почему же VB.NET распознает Windows 10 как Windows 8.1?

Я сделал systeminfo | findstr /C:"OS"в командной строке, и он вернул правильное значение в 10.0.10240 N/A Build 10240разделе «Версия ОС».

Любитель собак
источник
2
Потому что он подхватывает тот факт, что вы обновились с Windows 8.1. Метод, который вы используете, смотрит на реестр. Он работает как задумано. Существует более подходящая функция, чем использование переменной среды для определения используемой операционной системы. Я не могу предоставить код, так как это не Stackoverflow
Ramhound
1
Кто-то испытал ту же проблему в комментариях здесь: msdn.microsoft.com/en-us/library/windows/desktop/… Вам необходимо обновить манифест для вашего приложения.
MC10
Вы также используете это неправильно. Это должно быть закончено в Stackoverflow, так как это проблема кодирования, и хотя я подозреваю, что использование переменной окружения все еще является неправильным способом, файл манифеста, очевидно, не верен.
Ramhound
@ Ramhound Да, я думал, что это могло быть так. Я знаю, что после месяца обновления до Windows 10 Windows 8.1 удаляется - значит ли это, что номер версии будет правильным?
Любитель собак
Номер версии правильный. Как я уже сказал, он использует ваш метод чтения реестра, который не был обновлен и не будет обновлен, если бы не было чистой установки Windows 10. Выполните эту задачу по-другому, другими словами, не используйте переменная среды.
Ramhound

Ответы:

3

Потому что он подхватывает тот факт, что вы обновились с Windows 8.1. Метод, который вы используете, смотрит на реестр. Он работает как задумано. Существует более подходящая функция, чем использование переменной среды для определения используемой операционной системы. Я не могу предоставить код, так как это не Stackoverflow

- Ramhound 26 августа в 1:12

Это ответ в двух словах. Во время обновления реестр не меняет номер сборки со старого на новый. Это просто прилипает.

RookieTEC9
источник
2
Другими словами, обновление не работает должным образом ... Ну, ничего нового на западе;)
Quandary
0

Итак, вернемся к основному вопросу ... Я использую Инструментарий управления Windows (WMI) для генерации номера версии Windows так, как вы ожидаете. Например, он сообщает 10.0.10586

Вот короткий фрагмент кода

Public Class OS

' Use Windows Management Instrumentation (WMI) to get the OS version
    Public Shared Function GetOSVersion() As String
        Dim answer As String = ""

        ' add Imports System.Management and add a resource to System.Management
        Dim osClass As New ManagementClass("Win32_OperatingSystem")
        For Each queryObj As ManagementObject In osClass.GetInstances()
            answer = DirectCast(queryObj.GetPropertyValue("Version"), String)
        Next

        Return answer
    End Function
End Class
egray
источник
0

Это потому , что вы были чтение CurrentVersionиз HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersionи, как уже говорилось, что запись не обновляется изменений с обновлениями Windows.

Записи нужно проверить CurrentMajorVersionNumber, CurrentMinorVersionNumberи CurrentBuildNumber, в том же ключе.

Нуно Андре
источник
-1

6.3 - это внутренняя версия Windows, которая показывает, что начиная с Windows 7, не было никаких крупных выпусков, вопреки тому, что Microsoft хочет, чтобы вы верили. Названия Windows 7, 8, 10 и т. Д. Являются просто маркетинговыми названиями. Они решили пропустить 9, чтобы соответствовать Mac OS X. Но реальный номер версии - 6,3

user319563
источник
1
Существует много разных причин, по которым они пропустили v9 (особенно интересным было то, что многие устаревшие приложения увидели бы 9 и ошибочно думали, что ОС была Windows 95/98), но я не думаю, что они когда-либо подтвердили или опровергли это ). Тем не менее, старайтесь воздерживаться от случайных предположений в своих ответах - источники лучше :)
Mikey TK
-1

Я установил Windows 10 (юбилейный выпуск 1607) с нуля, и запись реестра currentversion также сообщает 6.3, но, например, 'ver' сообщает 10.0.14393

Кстати 1) Я читал, что предварительный просмотр Windows 10 был 6,4

Кстати 2) Я установил Windows 10 в качестве виртуальной машины Hyper-V на Windows Server 2012 R2, но я не думаю, что это связано с этим.

Тео Врум
источник
«Я читал, что предварительный просмотр Windows 10 был 6,4», - вы прочитали неправильно. Это комментарий, он не отвечает на вопрос автора, если вы хотите оставить комментарий, заработайте для этого необходимый балл репутации.
Ramhound