2014-09-29 69 views
0

如何获取字符串中的Windows版本名称“Windows 8.1,版本6.3.9600 - x64(64位)”,而不使用Windows中未包含的库。我查看了getCurrentVersion并完成了无数次搜索解决方案,但没有发现任何内容。获取Windows版本字符串C++

+0

[这个可能吗?](http://msdn.microsoft.com/en-us/library/ms724833(VS.85).aspx) – 2014-09-29 23:19:29

+0

这个怎么样:http://www.naughter.com /dtwinver.html – PaulMcKenzie 2014-09-30 00:05:32

回答

1

有此on MSDN的详细讨论:

“要获取操作系统的完整版本号,则调用系统DLL,如Kernel32.dll中的一个GetFileVersionInfo功能,然后调用VerQueryValue获得文件版本信息的\\StringFileInfo\\<lang><codepage>\\ProductVersion子块“。

+0

我试图避免,如果他们不与新版本的Windows转发兼容。例如,说窗口9出来,我忘了更新我的程序的这个标准。该程序仍然会报告Windows 8.注:我确实认为一个简单的版本号列表和名称将起作用 – 2014-09-29 23:28:55

+0

@amo,该报价适用于版本号码**,而不是版本**字符串**。 – 2014-09-30 01:03:52

+0

@ user3053430:从Windows 8.1开始,您必须包含明确指出您的应用支持哪些Windows版本的清单。当Windows 9发布时,如果你的清单不包含9.0,那么'GetVersion/Ex()'将报告8.1,或者如果你的清单不包含8.1,则报告为8.0。所以你必须为每个新的Windows版本更新你的清单,所以你可以同时更新你的'if'语句。那对于“向前兼容”如何? – 2014-09-30 01:05:32