View Single Post
Old 14th March 2014, 01:46   #3
Major Dude
LoRd_MuldeR's Avatar
Join Date: Sep 2005
Location: Somewhere over the Slaughterhouse
Posts: 797
Originally Posted by Lenge View Post
[*]On both WinXP-32-SP3 and Win7-64-SP1 hosts, the "Windows 95" and "Windows 98 / Windows Me" compatibility modes make StdUtils.GetRealOSVersion deliver "error" strings instead of the real Windows version.[*]StdUtils currently delivers "real" major and minor version numbers, but neither the "real" build number nor the "real" Service Pack number.[/LIST]@Mulder: Any chance of according enhancements to StdUtils?
GetRealOSVersion() was written primarily to get the real Windows version on Windows 8.1+. It's more a side-effect that it also works around compatibility mode. Therefore it will only work when a Windows NT based system is found - Windows 9x didn't even have the required API's. The "Windows 9x" compatibility mode probably makes GetVersionEx() to report a Non-NT system - so the current code won't go on and fail right away. But I will have to analyze that more closely. As long as VerifyVersionInfo() still behaves correctly with "Windows 9x" compatibility mode enabled, a workaround should be possible. Also I think checks for the service pack version could be added, if required.

My Plugins: StdUtils | NSISList | CPUFeatures | ExecTimeout | KillProc
My source of inspiration:
LoRd_MuldeR is offline   Reply With Quote