[Func] Process.exe || Process Management
Posté : mer. 23 sept. 2009 20:48
Bonjour a tous. Je poste une fonction que j'ai trouvé par nécessité quand je me suis rendu compte que ProcessClose() Ne marchait pas tout le temps, quand les programmes étaient en freeze par exemple.
Cette fonction permet de faire pas mal de chose, mais
ATTENTION, ELLE PEUT ÊTRE DANGEREUSE. En effet, ELLE FERME TOUS LES PROGRAMMES, même ceux nécessités pour faire tourner le SYSTÈME. Utilisez là donc avec parcimonie et bon escient.
A Noter : Elle fonctionne Grâce à un programme EXTERNE sur lequel je n'ai aucun controle, mais certifié Sans virus. Si vous ne faites pas confiance, ne l'utilisez pas.
Ce programme écrit dans un langage proche de la machine permet de faire ces actions.
Il suffit d'appeler le programme Process.exe avec les parametres ci-dessous
Exemples:
Utilisation:
Petite Precision, les parametres -s et -r peuvent être très utile, par exemple si vous souhaitez mettre en pause TOTALE un programme pendant l'execution du votre. Mais n'oubliez SURTOUT pas de le reactiver avant la fin de votre script. Essayez avec explorer.exe c'est assez surprenant. Le Process se fige.
Bonne Utilisation
Timothée
Ps : Toute Remarque Bienvenue.
Cette fonction permet de faire pas mal de chose, mais
ATTENTION, ELLE PEUT ÊTRE DANGEREUSE. En effet, ELLE FERME TOUS LES PROGRAMMES, même ceux nécessités pour faire tourner le SYSTÈME. Utilisez là donc avec parcimonie et bon escient.
A Noter : Elle fonctionne Grâce à un programme EXTERNE sur lequel je n'ai aucun controle, mais certifié Sans virus. Si vous ne faites pas confiance, ne l'utilisez pas.
Ce programme écrit dans un langage proche de la machine permet de faire ces actions.
Il suffit d'appeler le programme Process.exe avec les parametres ci-dessous
Exemples:
Code : Tout sélectionner
ShellExecuteWait(@ScriptDir & "\process.exe","parameters")
Code : Tout sélectionner
If FileExists("c:\process\Process.exe") then RunWait("c:\process\Process.exe -k iexplore.exe","",@SW_HIDE)
Code : Tout sélectionner
If IsObj ($oIE) then
$pid=WinGetProcess(Hwnd($oIE.HWnd()))
While ProcessExists($pid) And TimerDiff($t) <= 15000
ProcessClose($pid)
If IsObj ($oIE) then Winkill(Hwnd($oIE.HWnd()))
If FileExists("c:\process\Process.exe") then RunWait("c:\process\Process.exe -k "&$pid,"",@SW_HIDE)
WEnd
EndIf
Code : Tout sélectionner
Usage: process.exe [-v] [-t] [-c]
process.exe [-q] [Process Name/PID] [timeout sec(optional)]
process.exe [-k] [-s] [-r] [Process Name/PID]
process.exe [-p] [Process Name/PID] {RealTime|High|AboveNormal|
Normal|BelowNormal|Low}
process.exe [-a] [Process Name/PID] [Mask(To Set)]
-v Retourne une liste de Process. Peut être récupérée avec StrRead en lancant Process.exe avec RunWait()
-t View Kernel and User CPU Times.
-c View Process Creation Times.
-q Send WM_CLOSE Message. Default timeout is 60 Sec
-k Kill Process. (Terminate)
-s Suspend Process.
-r Resume Suspended Process.
-p Set Process Priority.
-a Get/Set Affinity Mask of Process.
C:\process>process.exe -v
Bonne Utilisation
Timothée
Ps : Toute Remarque Bienvenue.