很多方案是采用GetVersion、GetVersionEx这两个API来查询操作系统的版本号来判断当前的操作系统是Windows系列中的哪个,在Win10没有出现前,这种方法是行的通的,但是Win10出现后此方法对于判断Win10就不准了。
在此提供一个读取注册表的方法,已经验证过可行:
- //查看注册表获知:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionCurrentVersion
- //XP系统 5.1为XP,6.0为vista和2008, 6.1为win7, 6.2 Win8, 6.3 Win10
- // 是否Win10系统
- bool isSystemWin10()
- {
- // GetVersion() 对于判断Win10系统不太合适
- //打开注册表
- HKEY hKey;
- LONG nRet = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
- L"SOFTWARE\Microsoft\Windows NT\CurrentVersion",
- 0,
- KEY_ALL_ACCESS,
- &hKey);
- if(nRet != ERROR_SUCCESS)
- return false;
- //获取CurrentVersion “6.3”
- WCHAR szCurrentVersion[100] = {0};
- DWORD dwSize = 100;
- DWORD type;
- nRet = RegQueryValueExW(hKey, L"CurrentVersion", NULL,&type, (BYTE *)szCurrentVersion, &dwSize);
- if(nRet != ERROR_SUCCESS)
- return false;
- if( wcscmp(szCurrentVersion,L"6.3")==0 )
- return true;
- else
- return false;
- }
2016年09月20日 第一次更新
http://blog.csdn.net/qq2399431200/article/details/52592941#comments