Pourquoi Windows 10 renvoie-t-il le numéro de version 6.3?


8

Sur Windows 10, le code VB.NET Environment.OS.VersionStringsort Microsoft Windows NT 6.3.9600.0. Selon la documentation de Microsoft , le numéro de version de Windows 10 est 10.0, alors pourquoi VB.NET reconnaît-il Windows 10 comme Windows 8.1?

J'ai fait systeminfo | findstr /C:"OS"dans l'invite de commande et il a renvoyé la valeur correcte de 10.0.10240 N/A Build 10240sous "OS Version".


2
Parce qu'il reprend le fait que vous avez mis à niveau à partir de Windows 8.1. La méthode que vous utilisez examine le registre. Il fonctionne comme prévu. Il existe une fonction plus appropriée que l'utilisation de la variable d'environnement pour déterminer le système d'exploitation utilisé. Je ne peux pas fournir de code car ce n'est pas Stackoverflow
Ramhound

1
Quelqu'un a rencontré le même problème dans les commentaires ici: msdn.microsoft.com/en-us/library/windows/desktop/… Vous devez mettre à jour le manifeste de votre application.
MC10

Vous l'utilisez également mal. Cela devrait être terminé chez Stackoverflow car c'est un problème de codage et même si je soupçonne que l'utilisation de la variable d'environnement n'est toujours pas la bonne façon de procéder, le fichier manifeste n'est clairement pas correct.
Ramhound

@Ramhound Oui, je pensais que cela aurait pu être le cas. Je sais qu'après un mois de mise à niveau vers Windows 10, Windows 8.1 est supprimé - cela signifie-t-il que le numéro de version sera correct?
Dog Lover

Le numéro de version est correct. Comme je l'ai dit, la méthode que vous utilisez consiste à lire le registre, qui n'a pas été mis à jour et ne sera pas mis à jour à moins qu'il ne s'agisse d'une installation propre de Windows 10. Exécutez cette tâche d'une manière différente, en d'autres termes, n'utilisez pas la variable environnementale.
Ramhound

Réponses:


3

Parce qu'il reprend le fait que vous avez mis à niveau à partir de Windows 8.1. La méthode que vous utilisez examine le registre. Il fonctionne comme prévu. Il existe une fonction plus appropriée que l'utilisation de la variable d'environnement pour déterminer le système d'exploitation utilisé. Je ne peux pas fournir de code car ce n'est pas Stackoverflow

- Ramhound 26 août à 1:12

Voilà la réponse en un mot. Pendant la mise à niveau, le registre ne change pas le numéro de build de l'ancien au nouveau. Ça colle.


2
En d'autres termes, la mise à niveau ne fonctionne pas correctement ... Eh bien, rien de nouveau à l'ouest;)
Quandary

0

Donc, pour revenir à la question fondamentale ... J'utilise Windows Management Instrumentation (WMI) pour générer le numéro de version de Windows de la manière que vous attendez. Par exemple, il signale 10.0.10586

Voici un court extrait de code

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

C'est parce que vous lisiez CurrentVersionde HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersionet, comme cela a déjà été dit, que l' entrée ne soit pas mis à jour le changement des mises à jour de Windows.

Les entrées à vérifier sont CurrentMajorVersionNumber, CurrentMinorVersionNumberet CurrentBuildNumber, dans la même clé.


-1

6.3 est la version interne de Windows, qui révèle que depuis Windows 7, il n'y a pas eu de versions majeures, contrairement à ce que Microsoft veut vous faire croire. Les noms Windows 7, 8, 10, etc. ne sont que des noms marketing. Ils ont décidé de sauter 9 pour correspondre à Mac OS X. Mais le vrai numéro de version est 6.3


1
Il y a beaucoup de raisons différentes pour lesquelles ils ont sauté la v9 (une raison particulièrement intéressante était que de nombreuses applications héritées verraient le 9 et penseraient à tort que le système d'exploitation était Windows 95/98 - mais je ne pense pas qu'elles aient jamais confirmé ou nié que ). Cela dit, essayez de vous abstenir de spéculations aléatoires dans vos réponses - les sources sont les meilleures :)
Mikey TK

-1

J'ai installé Windows 10 (édition anniversaire 1607) à partir de zéro et l'entrée de registre currentversion signale également 6.3, mais, par exemple, les rapports 'ver' 10.0.14393

BTW 1) J'ai lu que l'aperçu de Windows 10 était de 6,4

BTW 2) ​​J'ai installé Windows 10 en tant que machine virtuelle Hyper-V sur Windows Server 2012 R2, mais je ne pense pas que cela ait quelque chose à voir avec cela.


"J'ai lu que l'aperçu de Windows 10 était de 6,4" - Vous avez mal lu. Ceci est un commentaire, il ne répond pas à la question de l'auteur, si vous souhaitez laisser un commentaire gagnez le point de réputation requis pour le faire.
Ramhound
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.