#Windows nt 6.4 windows
It will now actually only report accurately up to Windows 8.1, even in future operating systems, to ensure people can't accidentally or intentionally misuse them. It appears that Microsoft finally had enough of that, and depreciated it.
![windows nt 6.4 windows nt 6.4](https://trustedwindows.files.wordpress.com/2015/07/winstartmenu.jpg)
The GetWindowsVersionEx() API function is overly-complicated and notoriously easy to accidentally misuse. Whenever that sort of thing happens, people inevitably blame the OS rather than the application that had the bug in the first place, and as such Microsoft has resorted to some rather extraordinary measures to preserve backward compatibility, even going so far as to intentionally replicate bugs in special program-specific compatibility modes. That is, they're checking against future version of Windows rather than previous versions, and as such, their programs would refuse to run if the internal version number had been bumped from 6 to 7 (or 8). Whether intentionally or unintentionally, many programmers have misused the old Windows APIs that check version numbers in a way that breaks compatibility of their apps going forward. The reason Microsoft never bumped the version number is because of backwards compatibility. As far as I know that's the only case where you'd ever be doing version checks against strings under Windows. I guess the idea was that you shouldn't need to know the OS your Java app is running on, but as anyone who's done anything with Java knows, that never actually works in practice. Well, except for Java applications, because Sun actually built Java to pull the version number and then translate it into a string rather than expose it via any public Java API. This whole "Windows 9*" check thing makes no sense.
![windows nt 6.4 windows nt 6.4](http://www.uqidong.com/uploads/allimg/140708/178-140FPZT25P.jpg)
So you'll only ever get version 6.2 (Windows 8) back unless you explicitly target later version of Windows, meaning the jump to version 10 can't cause problems with older software.
#Windows nt 6.4 windows 8.1
(ME was 4.90, and a separate flag indicates if the system was Windows NT-based, allowing programs to known the difference between Windows 95 (4.0) and Windows NT 4.0.)Įven more, if you check out the documentation on getting version information, the version returned is now tied to the application manifest as of Windows 8.1 anyway.
![windows nt 6.4 windows nt 6.4](https://livedoor.sp.blogimg.jp/blackwingcat/imgs/b/5/b5de75d7.png)
The Windows 95 version was internally identified as version 4.0. The Windows API doesn't give out names like that. That's the reason given but it makes no sense.