2
哪一个是在以下几个方面的窗户让操作系统名称,操作系统版本更好 -如何在Windows中获取os名称,版本?
- 时间获取信息 在所有的Windows操作系统像XP,VISTA
- 兼容性和更高的
系统的系统信息或wmic命令?我想避免在C中使用OSVersionInfoEx,因为必须对营销名称检测进行硬编码,并且如果引入了新的窗口风格,将会增加维护工作。请分享您的意见。
哪一个是在以下几个方面的窗户让操作系统名称,操作系统版本更好 -如何在Windows中获取os名称,版本?
系统的系统信息或wmic命令?我想避免在C中使用OSVersionInfoEx,因为必须对营销名称检测进行硬编码,并且如果引入了新的窗口风格,将会增加维护工作。请分享您的意见。
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);
}
WMI-多一点的代码来写。但是,您可能只是在应用程序启动时(或需要时)执行此操作,并在再次需要信息时缓存结果。它不像操作系统的产品名称会在应用程序查询一次后发生变化。 :)至于向后兼容性,我确定它在较早的操作系统上工作正常......但是在将它交付给客户之前,您将对其进行测试,对吧?
如果你想要一个未公开的方式,也有正是一个注册表项,你希望它是什么:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion ("ProductName")