比如对于win32_process,只有handle这个属性才能构造对象,其他的就不行,比如
new ManagementObject("win32_process.name='notepad.exe'")就不行
当然,这里name不能唯一识别一个对象,当是我想能够唯一识别的对象的也不止handle吧?为什么只有handle才能构造对象?还有,不同的类,需要不同的属性来构造,比如win32_logicaldisk又是其他的属性了我怎么才能知道一个类的哪个属性能够构造ManagementObject对象?
new ManagementObject("win32_process.name='notepad.exe'")就不行
当然,这里name不能唯一识别一个对象,当是我想能够唯一识别的对象的也不止handle吧?为什么只有handle才能构造对象?还有,不同的类,需要不同的属性来构造,比如win32_logicaldisk又是其他的属性了我怎么才能知道一个类的哪个属性能够构造ManagementObject对象?
static void Main(string[] args)
{
string path = "Win32_Process";
string method = "Create"; ManagementScope scope = new ManagementScope(@"\\localhost\root\cimv2");
scope.Connect(); ObjectGetOptions opt = new ObjectGetOptions();
opt.Timeout = new TimeSpan(1000000);
try
{
using (ManagementClass processClass = new ManagementClass(scope, new ManagementPath(path),opt))
{
using (ManagementBaseObject inParams = processClass.GetMethodParameters(method))
{
inParams["CommandLine"] = "notepad.exe";
inParams["CurrentDirectory"] = "d:\\";
inParams["ProcessStartupInformation"] = null;
ManagementBaseObject outParams = processClass.InvokeMethod(method, inParams, null);
if ((uint)outParams["returnValue"] == 0)
Console.WriteLine("Success");
else
Console.WriteLine("Fail");
}
}
}
catch (Exception ex)
{
Console.WriteLine("Fail" + ex.Message);
} }
=========================================
微软的定义public class ManagementClass : ManagementObject
所有的属性都应该能构造成ManagementObject你要是想知道是不是Class可以用类别为ManagementPath属性中的IsClass来判断