alias process {
.comopen Process WbemScripting.SWbemLocator
noop $com(Process,ConnectServer,3, dispatch* Win32_Process)
noop $com(Win32_Process, ExecQuery,3,string,Select * from Win32_Process,dispatch* Win32_Process_Result)
var %a = $comval(Win32_Process_Result,0)
set -l $+(%,process,$1)
while (%a) {
if ($comval(Win32_Process_Result,%a,Name) == $1) {
if ($prop == isopen) { var %t 1 | break }
elseif ($prop == kill) { var %n 1 | noop $comval(Win32_Process_Result,%a,Terminate) | break }
elseif ($prop == Nb) inc $+(%,process,$1)
}
dec %a
}
.comclose process
.comclose win32_process
.comclose Win32_Process_Result
return $iif(%t,$true,$iif(%n,$true,$iif($var(%process*,0),$var(%process*,1).value,$false)))
}