Чому 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 Так, я думав, що це могло бути так. Я знаю, що після місяця оновлення до Windows 10 Windows 8.1 видаляється - це означає, що номер версії буде правильним?
любитель собак

Номер версії правильний. Як я вже сказав, він використовує ваш метод читання реєстру, який не оновлювався, і не оновлювався б, якщо це не була чиста установка Windows 10. Ідіть про це завдання по-іншому, іншими словами, не використовуйте екологічна змінна.
Рамхаунд

Відповіді:


3

Тому що це підбирає той факт, який ви оновили з Windows 8.1. Метод, який ви використовуєте, переглядає реєстр. Він працює за призначенням. Існує більш відповідна функція, ніж використання змінної середовища, щоб визначити, яка операційна система використовується. Я не можу надати код, оскільки це не Stackoverflow

- Рамхаунд, 26 серпня о 1:12

Ось у двох словах відповідь. Під час оновлення реєстр не змінює номер збірки зі старого на новий. Це просто прилипає.


2
Іншими словами, оновлення не працює належним чином ... Ну, нічого нового на заході;)
Четвер

0

Отже, щоб повернутися до основного питання ... Я використовую Windows Management Instrumentation (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

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


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

-1

Я встановив Windows 10 (ювілейне видання 1607) з нуля, а запис реєстру currentversion також повідомляє 6.3, але, наприклад, "ver" звітує 10.0.14393

BTW 1) Я прочитав, що попередній перегляд Windows 10 був 6.4

BTW 2) ​​Я встановив Windows 10 як Hyper-V VM на Windows Server 2012 R2, але не думаю, що це з цим нічого не має.


"Я прочитав, що попередній перегляд Windows 10 був 6,4" - Ви неправильно прочитали. Це коментар, він не відповідає на запитання автора, якщо ви хочете залишити коментар, заробіть потрібну точку репутації.
Рамхаунд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.