我有一个程序,我需要根据用户运行的Windows版本显示不同的下载链接。
使用this answer我能够检测到操作系统的版本。同样使用this answer我可以检测到我是在32位还是64位版本的操作系统上运行。
这完全符合我的需求,但我遇到了this page,其中指出Windows XP 64-Bit Edition
和Windows Server 2003
都使用版本号5.2
。
如何检测这两个操作系统之间的差异?
作为旁注,我确实需要将它们发送到不同的位置,如果它们是2003 64位或XP 64位,这里是我需要发送给人们的链接:
答案 0 :(得分:5)
GetVersionEx
会将wProductType
设置为VER_NT_SERVER
,而对于Windows XP / 7/8则设置为VER_NT_WORKSTATION
。
你已经知道如何获得操作系统是32位还是64位,所以有一点P / Invoke(GetVersionEx为here),你应该能够弄清楚其余部分。 / p>
或者,如果您不想使用P / Invoke,可以使用WMI,并查看Win32_OperatingSystem
类,其中ProductType
类具有相同的信息。 {1}}财产。我不会这样做,除非你真的有到。
答案 1 :(得分:-1)
假设您正在使用.Net进行编程:
System.Environment属性包括:
Is64BitOperatingSystem
Is64BitProcess
OSVERSION
ProcessorCount
等等