如何通过编程来区分XP 64位和Server 2003 64位
本文关键字:64位 Server 2003 XP 何通过 编程 | 更新日期: 2023-09-27 18:04:50
我有一个程序,我需要根据用户运行的windows版本显示不同的下载链接。
使用这个答案,我能够检测到操作系统的版本。同样使用这个答案,我可以检测我是在32位还是64位版本的操作系统上运行。
这将完全满足我的需求,然而,我偶然发现这一页指出Windows XP 64-Bit Edition
和Windows Server 2003
都使用版本号5.2
。
我如何检测这两个操作系统之间的差异?
作为旁注,如果他们是2003 64位或XP 64位,我确实需要将他们发送到不同的位置,以下是我需要发送的链接:
- Windows XP远程桌面连接(终端服务客户端6.1)
- 远程桌面连接(Terminal Services Client 6.0) for Windows XP x64 Edition
- Windows Server 2003远程桌面连接(终端服务客户端6.0)
- 远程桌面连接(Terminal Services Client 6.0) for Windows Server 2003 x64 Edition
GetVersionEx
将wProductType
设置为VER_NT_SERVER
对于Windows Server 2003/2008/2008R2/2012,而VER_NT_WORKSTATION
对于Windows XP/7/8。
你已经知道如何获得操作系统是32位还是64位,所以用一点p/Invoke (GetVersionEx在这里),你应该能够弄清楚剩下的。
或者,如果您不想使用p/Invoke,您可以使用WMI,并查看Win32_OperatingSystem
类,它在ProductType
属性中具有相同的信息。我不会这么做的,除非你真的需要。
假设你在。net中编程:
- http://msdn.microsoft.com/en-us/library/b3022k9x.aspx
系统。环境属性包括:
-
Is64BitOperatingSystem
-
Is64BitProcess
-
OSVersion
-
ProcessorCount
-
等等