以下是获取Windows操作系统名称和版本的方面比较:
- 获取信息的时间
- 与所有Windows操作系统的兼容性,如XP、Vista和更高版本
systeminfo命令还是wmic命令?我想避免在C语言中使用OSVersionInfoEx,因为需要硬编码市场名称检测,如果引入新的Windows版本,则会增加维护工作量。请分享您的意见。
GetVersionEx - 想要获取基本的操作系统版本号,没有比这更快的方法。但是您是对的,您将无法将新版本的操作系统映射到正确的字符串。您是否考虑过只是这样做:
OSVERSIONINFOEX version = {};
char szOS[MAX_OS_LENGTH];
version.dwOSVersionInfoSize = sizeof(version);
GetVersionEx((OSVERSIONINFO*)&version);
if (MyFunctionToMapVersionToString(&version, szOS) == false)
{
sprintf(szOS, "Microsoft Windows %d.%d", version.dwMajorVersion, version.dwMinorVersion);
}
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion ("ProductName")