Je saisis cette occasion pour vous souhaiter une bonne et heureuse année 2021.
Comment faire pour ne pas perturber (bloquer) le fonctionnement normal d’un scripte en cours d’exécution.
Explication : J’ai programme Gui (Questionnaire) perso qui tourne en permanence. Dans le cadre dans le respect des règles de confidentialité et de protection des données. Pour cela, il est recommandé de fermer tout processus (intrus) ne figurant pas sur la liste des processus autorisés
ProcessList()
. Voici le code1 que j'utilise pour fermer processus non autorisé.Problématique :
- Le code 1 marche sans problème s’il est lancé à part hors script du programme Gui (Questionnaire) perso.
- Si j’intègre (associe) le code 1 dans le script du programme Gui, toutes les commandes se bloquent (Boutons) suite à la présence de la boucle infinie.
Solution souhaitée :
Comment intégrer (associe) le code 1 dans le programme Gui ( à l'intérieur) sans perturber (bloquer) le fonctionnement normal de l’application qui est en cours d’exécution.
c.à.d. : Je souhaiterai que lorsque l'on clique sur annuler ou que l'on appuie sur "Bouton" ma boucle ne s’arrête pas mais elle ne bloque pas le fonctionnement normale du programme en cours d’exécution.
Meri infiniment pour votre aide.
Cordialement.
CODE 1:
#include <Array.au3>
Func _ProcessClose()
While 1
$begin = TimerInit()
Sleep(3000)
ProcessAutorises()
WEnd
EndFunc ;==>_ProcessClose2
Func ProcessAutorises() ; Par exemeple ceux du système et indispensable à l'éxecution du programme
Global $aExcludeList[20] = [ _
"[System Process]", _
"avp", _
"avpui", _
"cmd", _
"conhost", _
"csrss", _
"ctfmon", _
"dwm", _
"icp", _
"SciTE Script Editor", _
"SciTE", _
"AutoIt3", _
"SciTE", _
"STC"]
Global $aProcessList = ProcessList()
For $iProcess = 1 To $aProcessList[0][0]
If _ArraySearch($aExcludeList, StringLeft($aProcessList[$iProcess][0], StringInStr($aProcessList[$iProcess][0], ".", 0, -1) - 1)) = -1 Then
ProcessClose($aProcessList[$iProcess][1])
EndIf
Next
EndFunc
Func _ProcessClose()
While 1
$begin = TimerInit()
Sleep(3000)
ProcessAutorises()
WEnd
EndFunc ;==>_ProcessClose2
Func ProcessAutorises() ; Par exemeple ceux du système et indispensable à l'éxecution du programme
Global $aExcludeList[20] = [ _
"[System Process]", _
"avp", _
"avpui", _
"cmd", _
"conhost", _
"csrss", _
"ctfmon", _
"dwm", _
"icp", _
"SciTE Script Editor", _
"SciTE", _
"AutoIt3", _
"SciTE", _
"STC"]
Global $aProcessList = ProcessList()
For $iProcess = 1 To $aProcessList[0][0]
If _ArraySearch($aExcludeList, StringLeft($aProcessList[$iProcess][0], StringInStr($aProcessList[$iProcess][0], ".", 0, -1) - 1)) = -1 Then
ProcessClose($aProcessList[$iProcess][1])
EndIf
Next
EndFunc