Ich schreibe Code, um bestimmte Prozesse nach einer bestimmten Zeit zu beenden. Ich verwende den folgenden Code (für Post vereinfacht):Abschlussvorgang erfordert 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);
}
das Problem - eine WQL-Anweisung von SELECT Name, CreationDate
löst eine Ausnahme zu verwenden, wenn versucht, die beenden zu tun:
"Operation is not valid due to the current state of the object."
... aber mit SELECT *
funktioniert und beendet den Prozess. Warum ist das - gibt es eine bestimmte WMI-Spalte, die in der Ergebnismenge benötigt wird?
danke!
Also sagen Sie "SELECT Handle, Name, CreationDate" ist was benötigt wird? – mdelvecchio
ich gerade getestet - ja, einfach Hinzufügen von Handle zum WQL ermöglicht die Beendigung. Vielen Dank! – mdelvecchio