3

我有一个程序,我需要根据用户正在运行的 Windows 版本显示指向不同下载的不同链接。

使用这个答案,我能够检测到操作系统是哪个版本。同样使用这个答案,我可以检测我是在 32 位还是 64 位版本的操作系统上运行。

这将完全满足我的需求,但是我遇到了这个页面,它指出两者都Windows XP 64-Bit Edition使用Windows Server 2003版本号5.2

如何检测这两个操作系统之间的差异?


作为旁注,如果他们使用 2003 64 位或 XP 64 位,我确实需要将它们发送到不同的位置,以下是我需要将人们发送到的链接:

4

2 回答 2

5

GetVersionEx将设置wProductTypeVER_NT_SERVERWindows Server 2003/2008/2008R2/2012,而不是VER_NT_WORKSTATIONWindows XP/7/8。

您已经知道如何获取操作系统是 32 位还是 64 位,因此通过一点 P/Invoke(GetVersionEx 在这里),您应该能够弄清楚其余的。

或者,如果您不想使用 P/Invoke,您可以使用 WMI,并查看Win32_OperatingSystem类,该类在属性中具有相同的信息ProductType除非你真的不得不这样做,否则我不会费心这样做。

于 2013-03-19T21:50:53.050 回答
-1

假设您正在.Net 中编程:

System.Environment 属性包括:

  • Is64Bit操作系统

  • Is64Bit进程

  • 操作系统版本

  • 处理器计数

  • 等等等等

于 2013-03-19T21:45:00.463 回答