繁体   English   中英

如何以编程方式告诉XP 64位和Server 2003 64位之间的区别

[英]How to programmatically tell the difference between XP 64 bit and Server 2003 64 Bit

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

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

这完全符合我的需求,但是我遇到了这个页面 ,其中指出Windows XP 64-Bit EditionWindows Server 2003使用版本号5.2

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


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

对于Windows Server VER_NT_SERVER / 2008R2 / 2012, GetVersionExwProductType设置为VER_NT_SERVER ,而Windows XP / VER_NT_WORKSTATION则为VER_NT_WORKSTATION

你已经知道如何获得操作系统是32位还是64位,所以有了一点P / Invoke(GetVersionEx在这里 ),你应该能够弄清楚其余部分。

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

假设你在.Net中编程:

System.Environment属性包括:

  • Is64BitOperatingSystem

  • Is64BitProcess

  • OSVERSION

  • ProcessorCount

  • 等等

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM