我有一个C#应用程序,预计将在WIn 7& S中运行。赢得XP。在分发MSI和MS之前,我需要在我的C#源代码中检查OS NAME。 EXE给客户。
无需进行更精细的版本控制 我的代码想要查看是否有详细信息 是一个32位WINDOWS XP或64位 WINDOWS 7。
我可以帮忙解决这个问题。
正在考虑的操作系统是64位Win7& 32位Win XP。
答案 0 :(得分:4)
您可以使用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 Code Creator这个伟大的工具来生成WMI查询。
答案 1 :(得分:3)
您应该能够从Environment class获取所需的所有信息,特别是OSVersion和Is64BitOperatingSystem属性。
答案 2 :(得分:2)
是的,所有给你正确的方向Environment.OSVersion为你提供操作系统版本,但如何知道它的Windows XP或7
您需要比较版本,这里是关注列表
Windows XP 5.1.2600当前SP3
Windows XP Professional x64 Edition 5.2.3790
Windows Vista 6.0.6000当前版本已更改为6.0.6002(SP2)
Windows 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
}
答案 3 :(得分:1)
查看System.Environment.OSVersion
属性。它的类型为OperatingSystem,其中应包含所有相关信息。
答案 4 :(得分:0)
您应该查看Environment.OSVersion
和Environment.Is64BitOperatingSystem
。
虽然您需要手动将返回的信息映射到适当的字符串。
答案 5 :(得分:0)
看一下Environment课程。它包含您需要的方法。
简答:
Console.WriteLine("OSVersion: {0}", Environment.OSVersion.ToString());
答案 6 :(得分:0)
您可以从注册表中获取操作系统名称。
string productName = Registry.GetValue(@“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion”,“ ProductName”,“”).ToString(); Console.WriteLine(productName);
输出: //对于Windows 10,我得到了
Windows 10企业版
尝试此操作以获取Windows产品名称