Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式区分XP 64位和Server 2003 64位之间的差异_C#_.net_Windows_.net 2.0 - Fatal编程技术网

C# 如何以编程方式区分XP 64位和Server 2003 64位之间的差异

C# 如何以编程方式区分XP 64位和Server 2003 64位之间的差异,c#,.net,windows,.net-2.0,C#,.net,Windows,.net 2.0,我有一个程序,需要根据用户运行的windows版本显示不同下载的不同链接 使用我能够检测出操作系统的版本。此外,使用我可以检测我是在32位还是64位版本的操作系统上运行 这将完全符合我的需要,但是我遇到了这样的情况,即Windows XP 64位版本和Windows Server 2003都使用版本号5.2 如何检测这两个操作系统之间的差异 作为旁注,如果它们在2003 64位或XP 64位上,我确实需要将它们发送到不同的位置,以下是我需要将人们发送到的链接: 假设您在.Net中编程

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

使用我能够检测出操作系统的版本。此外,使用我可以检测我是在32位还是64位版本的操作系统上运行

这将完全符合我的需要,但是我遇到了这样的情况,即
Windows XP 64位版本
Windows Server 2003
都使用版本号
5.2

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


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


假设您在.Net中编程:

系统。环境属性包括:

  • IS64位操作系统

  • IS64位进程

  • 渗透压

  • 处理器计数

  • 等等

将Windows SERVER 2003/2008/2008R2/2012的
wProductType
设置为
VER\u NT\u服务器
,而Windows XP/7/8的
VER\u NT\u工作站

您已经知道如何获取操作系统是32位还是64位,因此通过一点p/Invoke(GetVersionEx是),您应该能够了解其余部分


或者,如果不想使用p/Invoke,可以使用WMI,并查看
Win32\u OperatingSystem
类,该类在
ProductType
属性中具有相同的信息。除非你真的必须这样做,否则我不会这么做。

请重新阅读我的问题。两个操作系统的报告相同。这就是我的问题所在!另外,IS64位操作系统是.net 4.0或更高版本的功能。我的问题被标记为.net 2.0您有很多选项,包括Win32 GetVersionEx()或.net“Environment”属性。关键是没有一个神奇的价值:你需要结合使用,比如说,“版本”和“平台”。或GetVersionEx()和GetCurrentHwProfile()的组合。等。好的,然后显示需要哪种组合来区分两个系统之间的差异,我将删除我的-1,直到那时你的答案“不有用”(向下投票的alt文本)我的链接应该指向“Environment”类,而不是“Environment.Version”。对不起,我不清楚。区别的一种方法是“Environment.OSVersion”。另一个是查看GetVersionEx()中返回的不同OSVERSIONINFO字段。PS:这里有一个很好的链接,用于在C#/.Net 2.0中检测64位操作系统:这将为您提供字符串名称:Use
OSInfo.Edition
compare@Greg您能否提供指向OSInfo的MSDN链接?OSInfo没有
Edition
属性。对于两位投了反对票的人来说,为什么你觉得我的问题“没有显示研究成果、不清楚或无用”?我已经对figure 64 bitness(无法访问IS64 BitOperatingSystem)进行了PInvoking,所以我会将其包括在这里。我会测试它,如果它有效,我会接受它。