Xol*_*lve 4 .net c# wmi wmi-query
在以下代码中:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Diagnostics;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string javaProcWql = string.Format("SELECT ProcessId, Name, CommandLine FROM Win32_Process WHERE Name = '{0}' AND CommandLine LIKE '%{1}%'", "firefox.exe", "firefox");
ManagementObjectSearcher mos = new ManagementObjectSearcher(javaProcWql);
foreach (ManagementObject mo in mos.Get())
{
Console.WriteLine(mo["ProcessId"]);
string[] userinfo = new string[2];
mo.InvokeMethod("GetOwner", (object[])userinfo);
Console.WriteLine("ha ha --> " + userinfo[1] + "\\" + userinfo[0]);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到InvalidOperationException
了消息以及异常是
"由于对象的当前状态,操作无效"
这有什么不对?
我找到了解决方案.查询应该像:
string.format( "SELECT * FROM Win32_Process WHERE Name = '{0}' AND CommandLine LIKE '%{1}%'", "firefox.exe", "firefox" )
Run Code Online (Sandbox Code Playgroud)
我的解释是猜测,因为我不是Windows或.NET编程方面的专家.在原始查询(请参阅问题)中我选择了字段,但是通过指定*
我选择对象,所以我可以调用它们上的方法.