我在获得我们C#/之一的中间点。 3. 用于第1737(2006)号决议工作的净应用 因此,我知道你正在做些什么,他们必须找到办法,来绕过含水层和Windows之间的分歧。
现在,这是非常不幸的,只是我为你们共同提出的粗略草案。 这样做可能更好,但也许会给你一个想法。
bool IsRunningMono()
{
// With our application, it will be used on an embedded system, and we know that
// Windows will never be running Mono, so you may have to adjust accordingly.
return Type.GetType("Mono.Runtime") != null;
}
string GetCPUSerial()
{
string serial = "";
if(IsRunningMono())
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "lshw";
startInfo.Arguments = "-xml";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
using(Process p = Process.Start(startInfo))
{
p.WaitForExit();
System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument();
xdoc.Load(new System.Xml.XmlTextReader(new StringReader(p.StandardOutput.ReadToEnd())));
System.Xml.XmlNodeList nodes = xdoc.SelectNodes("node/node/node/serial");
if (nodes.Count > 0)
{
serial = nodes[0].InnerText;
}
}
}
else
{
// process using wmi
}
return serial;
}
我试图将其装入数据Set,而不是XmlDocument,但每次都失败。 测试于Utu 9.10。 希望使你们走上正确的方向。