Dlaczego system Windows 10 zwraca numer wersji 6.3?


8

W systemie Windows 10, kod VB.NET Environment.OS.VersionStringwyjścia Microsoft Windows NT 6.3.9600.0. Według dokumentacji Microsoft numer wersji systemu Windows 10 to 10.0, więc dlaczego VB.NET rozpoznaje Windows 10 jako Windows 8.1?

Zrobiłem to systeminfo | findstr /C:"OS"w wierszu polecenia i zwróciło ono prawidłową wartość w polu 10.0.10240 N/A Build 10240„Wersja systemu operacyjnego”.


2
Ponieważ odbiera to, że uaktualniono system Windows 8.1. Metoda, której używasz, polega na sprawdzeniu rejestru. Działa zgodnie z przeznaczeniem. Istnieje bardziej odpowiednia funkcja niż użycie zmiennej środowiskowej w celu ustalenia, który system operacyjny jest używany. Nie mogę podać kodu, ponieważ nie jest to
Stackoverflow

1
Ktoś doświadczył tego samego problemu w komentarzach tutaj: msdn.microsoft.com/en-us/library/windows/desktop/… Musisz zaktualizować manifest dla swojej aplikacji.
MC10,

Używasz go również źle. To powinno się skończyć na Stackoverflow, ponieważ jest to problem z kodowaniem i chociaż podejrzewam, że używanie zmiennej środowiskowej jest nadal niewłaściwym sposobem na obejście tego, plik manifestu najwyraźniej nie jest poprawny.
Ramhound

@Ramhound Tak, myślałem, że może tak być. Wiem, że po miesiącu aktualizacji do Windows 10 Windows 8.1 jest usuwany - czy to znaczy, że numer wersji będzie poprawny?
Dog Lover

Numer wersji jest poprawny. Jak powiedziałem, metoda ta polega na czytaniu rejestru, który nie został zaktualizowany i nie zostałby zaktualizowany, chyba że byłaby to czysta instalacja systemu Windows 10. Przejdź do tego zadania inaczej, innymi słowy, nie używaj zmienna środowiskowa.
Ramhound

Odpowiedzi:


3

Ponieważ odbiera to, że uaktualniono system Windows 8.1. Metoda, której używasz, polega na sprawdzeniu rejestru. Działa zgodnie z przeznaczeniem. Istnieje bardziej odpowiednia funkcja niż użycie zmiennej środowiskowej w celu ustalenia, który system operacyjny jest używany. Nie mogę podać kodu, ponieważ nie jest to Stackoverflow

- Ramhound 26 sierpnia o 1:12

Oto odpowiedź w skrócie. Podczas aktualizacji rejestr nie zmienia numeru kompilacji ze starego na nowy. Po prostu się trzyma.


2
Innymi słowy, aktualizacja nie działa poprawnie ... Cóż, nic nowego na zachodzie;)
Quandary

0

Tak więc, aby wrócić do głównego pytania ... Używam Instrumentacji zarządzania Windows (WMI), aby wygenerować numer wersji Windows w sposób, którego oczekujesz. Na przykład zgłasza 10.0.10586

Oto krótki fragment kodu

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

To dlatego, że czytali CurrentVersionod HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersioni, jak już zostało powiedziane, że wpis nie zostanie uaktualnione zmiany z aktualizacji systemu Windows.

Wpisy do sprawdzenia to CurrentMajorVersionNumber, CurrentMinorVersionNumberi CurrentBuildNumber, w tej samej tonacji.


-1

6.3 jest wewnętrzną wersją systemu Windows, która ujawnia, że ​​od Windows 7 nie było żadnych większych wydań, w przeciwieństwie do tego, w co Microsoft chce, abyś wierzył. Nazwy Windows 7, 8, 10 itd. To tylko nazwy marketingowe. Postanowili pominąć 9, aby dopasować Mac OS X. Jednak rzeczywisty numer wersji to 6.3


1
Istnieje wiele różnych powodów, dla których pominęli wersję 9 (szczególnie schludne było to, że wiele starszych aplikacji widziało 9 i błędnie myślało, że system operacyjny to Windows 95/98 - ale nie sądzę, aby kiedykolwiek to potwierdzili lub zaprzeczyli ). To powiedziawszy, spróbuj powstrzymać się od przypadkowych spekulacji w swoich odpowiedziach - źródła są najlepsze :)
Mikey TK

-1

Zainstalowałem system Windows 10 (wydanie rocznicowe 1607) od zera, a wpis rejestru bieżącej wersji również zgłasza 6.3, ale na przykład raporty „ver” 10.0.14393

BTW 1) Czytałem, że podgląd Windows 10 miał 6.4

BTW 2) ​​Zainstalowałem Windows 10 jako maszynę wirtualną Hyper-V na Windows Server 2012 R2, ale nie sądzę, że to ma coś z tym wspólnego.


„Czytałem, że podgląd Windows 10 miał 6.4” - Źle przeczytałeś. To jest komentarz, nie odpowiada na pytanie autora, jeśli chcesz zostawić komentarz, zdobądź punkt reputacji, aby to zrobić.
Ramhound
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.