Я пишу код для завершения определенных процессов через определенное время. Я использую следующий код (упрощенный для должности):Процесс завершения требует WQL «SELECT * ...»?
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Name, CreationDate FROM Win32_Process WHERE Name = 'foo'");
foreach (ManagementObject process in searcher.Get())
{
process.InvokeMethod("Terminate", null);
}
проблема - с помощью инструкции WQL из SELECT Name, CreationDate
вызывает исключение при попытке сделать прекратить:
"Operation is not valid due to the current state of the object."
... но, используя SELECT *
, работает и завершает процесс. почему это - есть ли конкретная колонка WMI, которая необходима в наборе результатов?
спасибо!
так вы говорите: «SELECT Handle, Name, CreationDate» - это то, что нужно? – mdelvecchio
Я только что протестировал - да, просто добавление Handle к WQL допускает завершение. благодаря! – mdelvecchio