- OSVERSIONINFO info;
- info.dwOSVersionInfoSize = sizeof (info);
- GetVersionEx (&info);
- LOG_GENERAL ("Windows version %1.%2.%3 SP %4", info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber, info.szCSDVersion);
+ OSVERSIONINFO os_info;
+ os_info.dwOSVersionInfoSize = sizeof (os_info);
+ GetVersionEx (&os_info);
+ info.push_back (
+ dcp::compose (
+ "Windows version %1.%2.%3",
+ (int) os_info.dwMajorVersion, (int) os_info.dwMinorVersion, (int) os_info.dwBuildNumber
+ )
+ );
+ if (os_info.dwMajorVersion == 5 && os_info.dwMinorVersion == 0) {
+ info.push_back ("Windows 2000");
+ } else if (os_info.dwMajorVersion == 5 && os_info.dwMinorVersion == 1) {
+ info.push_back ("Windows XP");
+ } else if (os_info.dwMajorVersion == 5 && os_info.dwMinorVersion == 2) {
+ info.push_back ("Windows XP 64-bit or Windows Server 2003");
+ } else if (os_info.dwMajorVersion == 6 && os_info.dwMinorVersion == 0) {
+ info.push_back ("Windows Vista or Windows Server 2008");
+ } else if (os_info.dwMajorVersion == 6 && os_info.dwMinorVersion == 1) {
+ info.push_back ("Windows 7 or Windows Server 2008");
+ } else if (os_info.dwMajorVersion == 6 && (os_info.dwMinorVersion == 2 || os_info.dwMinorVersion == 3)) {
+ info.push_back ("Windows 8 or Windows Server 2012");
+ } else if (os_info.dwMajorVersion == 10 && os_info.dwMinorVersion == 0) {
+ info.push_back ("Windows 10 or Windows Server 2016");
+ }