如何检查当前操作系统是否为Windows 7?

时间:2010-09-30 08:36:35

标签: windows language-agnostic version

我正在开发一个Windows应用程序(它取决于DirectShow,所以没有Linux等)。

目前,它将在XP和Windows 7中运行(没有Vista支持)。

但是,有一段代码在XP或Windows 7中表现得非常不同,因此我需要知道我在哪个系统中,以便进行解决方法。因为我不支持Vista - 即使我这样做,我想也没有太大的区别 - 我不在乎Vista和7是否被识别为相同的操作系统,尽管我更喜欢它们不是。

以防万一,我正在用c ++开发,我不想维护两个不同的可执行文件,而且我更喜欢用语言无关的方式来做它。

所以,我的问题:在运行时检查Windows版本正在运行的正确方法(tm)是什么?

2 个答案:

答案 0 :(得分:2)

请参阅MSDN上的这篇文章,以编程方式获取操作系统版本。

答案 1 :(得分:2)

Naveen引用的article有一个重要的评论,也可能与您的场景相关:

  

识别当前操作系统通常不是确定特定操作系统功能是否存在的最佳方法。这是因为操作系统可能在可再发行的DLL中添加了新功能。而不是使用GetVersionEx来确定操作系统平台或版本号,而不是测试功能本身的存在。

可以使用IsOS功能检查特定功能。

GetVersionEx可用于检索操作系统版本。但是,请注意操作系统将根据兼容模式是否生效来识别不同。