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