- /*
-
- Alias très simple pour :
- -Savoir si tel ou tel processus est actif.
- -Fermer un processus.
-
- Syntaxe: $process(processus)
- Propriété : isopen kill
- Exemple: //echo * $process(mirc.exe).isopen
- Résultat: * $true
-
- Pour plus d'aide, concernant l'objet Shell Win32_Process:
- http://msdn2.microsoft.com/en-us/library/aa394372.aspx
-
- */
-
- alias process {
-
- ; On ouvre l'objet COM
-
- .comopen Process WbemScripting.SWbemLocator
-
- ; On transfère les données de l'ouverture de l'objet 'Process' dans l'objet 'Win32_Process'
- ; Il y a création d'un nouvel objet, 'Process' ne sers plus.
-
- noop $com(Process,ConnectServer,3, dispatch* Win32_Process)
-
- ; On éxécute une requête WQL afin de séléctionner tous les champs (*) de l'objet 'Win32_Process' (pas l'objet COM, l'objet Shell)
- ; Cette requête nous renvoit la liste
- ; Le dispatch transfère ces données sur un nouvel objet, 'Win32_Process_Results'
-
- noop $com(Win32_Process, ExecQuery,3,string,Select * from Win32_Process,dispatch* Win32_Process_Result)
-
- ; On fait une boucle sur la liste
- var %a = $comval(Win32_Process_Result,0)
-
- while (%a) {
-
- ; Si le nom du processus est celui que l'on a spécifié :
-
- if ($comval(Win32_Process_Result,%a,Name) == $1) {
-
- ; On met la variable %t à 1 si on a spécifié $process().open et on arrete la boucle
-
- if ($prop == isopen) { var %t 1 | break }
-
- ; On met la variable %n a 1 si on a spécifié $process().kill ,on ferme le processus et on arrete la boucle
-
- elseif ($prop == kill) { var %n 1 | noop $comval(Win32_Process_Result,%a,Terminate) | break }
-
- }
-
- ; On décremente %a pour la boucle
-
- dec %a
-
- }
-
- ; On ferme les objets COM
-
- .comclose process
- .comclose win32_process
- .comclose Win32_Process_Result
-
- ; Si %t est à 1, le processus demandé est ouvert, donc on retourne $true, $false sinon.
- ; Si %n est à 1, le processus demandé a été fermé, donc on retourne $true, $false sinon.
-
- return $iif(%t,$true,$iif(%n,$true,$false))
- }
/*
Alias très simple pour :
-Savoir si tel ou tel processus est actif.
-Fermer un processus.
Syntaxe: $process(processus)
Propriété : isopen kill
Exemple: //echo * $process(mirc.exe).isopen
Résultat: * $true
Pour plus d'aide, concernant l'objet Shell Win32_Process:
http://msdn2.microsoft.com/en-us/library/aa394372.aspx
*/
alias process {
; On ouvre l'objet COM
.comopen Process WbemScripting.SWbemLocator
; On transfère les données de l'ouverture de l'objet 'Process' dans l'objet 'Win32_Process'
; Il y a création d'un nouvel objet, 'Process' ne sers plus.
noop $com(Process,ConnectServer,3, dispatch* Win32_Process)
; On éxécute une requête WQL afin de séléctionner tous les champs (*) de l'objet 'Win32_Process' (pas l'objet COM, l'objet Shell)
; Cette requête nous renvoit la liste
; Le dispatch transfère ces données sur un nouvel objet, 'Win32_Process_Results'
noop $com(Win32_Process, ExecQuery,3,string,Select * from Win32_Process,dispatch* Win32_Process_Result)
; On fait une boucle sur la liste
var %a = $comval(Win32_Process_Result,0)
while (%a) {
; Si le nom du processus est celui que l'on a spécifié :
if ($comval(Win32_Process_Result,%a,Name) == $1) {
; On met la variable %t à 1 si on a spécifié $process().open et on arrete la boucle
if ($prop == isopen) { var %t 1 | break }
; On met la variable %n a 1 si on a spécifié $process().kill ,on ferme le processus et on arrete la boucle
elseif ($prop == kill) { var %n 1 | noop $comval(Win32_Process_Result,%a,Terminate) | break }
}
; On décremente %a pour la boucle
dec %a
}
; On ferme les objets COM
.comclose process
.comclose win32_process
.comclose Win32_Process_Result
; Si %t est à 1, le processus demandé est ouvert, donc on retourne $true, $false sinon.
; Si %n est à 1, le processus demandé a été fermé, donc on retourne $true, $false sinon.
return $iif(%t,$true,$iif(%n,$true,$false))
}