大家好,
我如何以编程方式获取计算机描述? 我正在使用C#和.NET 2.0。
我尝试Console.WriteLine(Dns.GetHostName());
,但它改为Full computer name
。
我还使用了以下代码:
ManagementObjectSearcher query1 = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem") ;
ManagementObjectCollection queryCollection1 = query1.Get();
foreach( ManagementObject mo in queryCollection1 )
{
Console.WriteLine(mo["Description"].ToString());
}
但这似乎不起作用,我得到了这个例外:
Exception System.IO.FileNotFoundException was thrown in debuggee:
Could not load file or assembly 'System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
答案 0 :(得分:8)
它在注册表值
中 HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\srvcomment
访问它的最简单方法是:
using Microsoft.Win32;
string key = @"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters";
string computerDescription = (string)Registry.GetValue(key, "srvcomment", null);
答案 1 :(得分:3)
以下代码将获取计算机描述。我没有在.NET 2.0上对此进行测试,但是从v1.1开始使用的管理类已经存在,所以它应该可以工作。
using System.Management;
string description;
using (ManagementClass mc = new ManagementClass("Win32_OperatingSystem"))
using (ManagementObjectCollection moc = mc.GetInstances())
{
foreach (ManagementObject mo in moc)
{
if (mo.Properties["Description"] != null)
{
description = mo.Properties["Description"].Value.ToString();
break;
}
}
}
答案 2 :(得分:1)
您需要Windows SDK中的DLL
System.Management.Automation.dll
https://stackoverflow.com/a/1187978/169714