Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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#获取运行代码的操作系统的名称?_C#_Windows Xp_Operating System_Windows 7 X64 - Fatal编程技术网

如何使用C#获取运行代码的操作系统的名称?

如何使用C#获取运行代码的操作系统的名称?,c#,windows-xp,operating-system,windows-7-x64,C#,Windows Xp,Operating System,Windows 7 X64,我有一个C#应用程序,预计将在WIn 7和WIn XP中运行。在将MSI&EXE分发给客户之前,我需要检查C#源代码中的操作系统名称 没有进入更精细的版本控制 详细信息我的代码想检查它是否 是32位WINDOWS XP还是64位WINDOWS XP 视窗7 我能在这方面得到帮助吗 正在考虑的操作系统是64位Win7和32位Win XP。您应该能够从和属性中获得所需的所有信息。查看属性。它的类型应包含所有相关信息。您应该签出并删除它 不过,您需要手动将返回的信息映射到适当的字符串。查看该类。它包含

我有一个C#应用程序,预计将在WIn 7和WIn XP中运行。在将MSI&EXE分发给客户之前,我需要检查C#源代码中的操作系统名称

没有进入更精细的版本控制 详细信息我的代码想检查它是否 是32位WINDOWS XP还是64位WINDOWS XP 视窗7

我能在这方面得到帮助吗


正在考虑的操作系统是64位Win7和32位Win XP。您应该能够从和属性中获得所需的所有信息。

查看属性。它的类型应包含所有相关信息。

您应该签出并删除它

不过,您需要手动将返回的信息映射到适当的字符串。

查看该类。它包含满足您需要的方法

简短答复:

Console.WriteLine("OSVersion: {0}", Environment.OSVersion.ToString());

是的,所有这些都为您提供了正确的环境方向。OSVersion为您提供了操作系统版本,但如何知道它是windows XP还是7

您需要比较版本,这里是相关列表

Windows XP 5.1.2600当前SP3

Windows XP Professional x64 Edition 5.2.3790

使用SP2将Windows Vista 6.0.6000当前版本更改为6.0.6002

Windows 7 6.1.7600

更多


您可以使用WMI获得操作系统的友好名称

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem");
String operatingSystem = String.Empty;

foreach (ManagementObject query in searcher.Get())
{
   operatingSystem = query["Caption"].ToString();
   break;
}

您可以使用Microsoft提供的一个很棒的工具来生成WMI查询

您可以从注册表获取操作系统名称

字符串productName=Registry.GetValue(@“HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion”、“productName”、“”)。ToString(); Console.WriteLine(产品名称)

输出: //对于我的windows 10,我得到了

Windows 10企业版


尝试使用此方法获取Windows产品名称

您也关心Vista吗?或者针对不包含媒体播放器的特定地区的一些更复杂的版本,例如)请参见以下答案[此处][1][1]:没有WIndows Vista正在考虑中。无论有多个版本,我只想检查操作系统是32位WIndows XP还是64位WIndows 7。我不想讨论版本控制的细节。我可以获得有关此plz的帮助吗。@engineerMaster是的,您可以通过比较版本来了解操作系统是XP还是Windows 7。Well 7是6.1(主要版本6,次要版本1)和XP是5.1。。请看这里,虽然您需要解析结果并删除构建,但如果您不想包含Server2008R2,您还需要检查产品类型(不知道如何在.NET中执行)。
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem");
String operatingSystem = String.Empty;

foreach (ManagementObject query in searcher.Get())
{
   operatingSystem = query["Caption"].ToString();
   break;
}