[英]How to get the name of OS in which the code is running using C#?
我有一个 C# 应用程序,预计可以在 WIn 7 和 Win XP 中运行。 在向客户分发 MSI 和 EXE 之前,我需要检查 C# 源代码中的操作系统名称。
没有进入更精细的版本控制细节,我的代码想检查它是 32 位 WINDOWS XP 还是 64 位 WINDOWS 7。
我能得到这方面的帮助吗?
正在考虑的操作系统是 64 位 Win7 和 32 位 Win XP。
您可以使用 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;
}
您可以使用WMI Code Creator ,这是一个来自 Microsoft 的强大工具来生成 WMI 查询。
你应该能够得到所有你从需要的信息环境类,具体而言, OSVERSION和Is64BitOperatingSystem性能。
是的,所有都给你正确的方向 Environment.OSVersion 给你操作系统版本,但如何知道它是 Windows XP 还是 7
您需要比较版本,这里是关注列表
Windows XP 5.1.2600 当前 SP3
Windows XP Professional x64 版 5.2.3790
Windows Vista 6.0.6000 当前版本更改为 6.0.6002 SP2
视窗 7 6.1.7600
if (Environment.OSVersion.Version.ToString().Equals("5.1.2600"))
{
// windows xp 32-Bit with service pack 3
}
else if (Environment.OSVersion.Version.ToString().Equals(" 6.1.7600"))
{
// windows 7
}
查看System.Environment.OSVersion
属性。 它属于操作系统类型,应包含所有相关信息。
您应该查看Environment.OSVersion
和Environment.Is64BitOperatingSystem
。
虽然您需要手动将返回的信息映射到适当的字符串。
您可以从注册表中获取操作系统名称。
string productName = Registry.GetValue(@"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", "").ToString(); Console.WriteLine(productName);
输出: //对于我的 Windows 10,我得到了
Windows 10 企业版
试试这个以获取 Windows 产品名称
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.