Avant tout je suis un débutant et je ne maitrise pas encore forcément la sémantique du codage ou autre.
Je travaille sur un script qui, basiquement, à l'aide d'une interface graphique permet de pinger des serveurs ( 50 serveurs max ) et de retourner l'état du serveur.
Voici l'interface graphique :
While 1
Sleep(100)
If $Scanner = 1 Then
VerifierXClick($LigneEnCours)
$LigneEnCours = $LigneEnCours + 1
If $LigneEnCours = 51 Then
$LigneEnCours = 1
EndIf
EndIf
WEnd
Func StopClick()
GUICtrlSetState ( $Button3, $GUI_ENABLE )
GUICtrlSetState ( $Button4, $GUI_DISABLE )
ConsoleWrite("STOP" & @CRLF)
If $Scanner = 1 Then
$Scanner = 0
EndIf
EndFunc
Func DemarrageToutClick ()
GUICtrlSetState ( $Button4, $GUI_ENABLE )
GUICtrlSetState ( $Button3, $GUI_DISABLE )
ConsoleWrite("Demarre" & @CRLF)
If $Scanner = 0 Then
$Scanner = 1
EndIf
EndFunc
Func VerifierToutClick ()
If $Scanner = 0 Then
Return
Else
If GuiCtrlRead($adresse1) <> "" Then
Estcequeleserveurrepond ($Verifier1, $adresse1, $heure1, $priorite1)
EndIf
EndIf
Sleep(100)
If $Scanner = 1 Then
VerifierXClick($LigneEnCours)
$LigneEnCours = $LigneEnCours + 1
If $LigneEnCours = 51 Then
$LigneEnCours = 1
EndIf
EndIf
WEnd
Func StopClick()
GUICtrlSetState ( $Button3, $GUI_ENABLE )
GUICtrlSetState ( $Button4, $GUI_DISABLE )
ConsoleWrite("STOP" & @CRLF)
If $Scanner = 1 Then
$Scanner = 0
EndIf
EndFunc
Func DemarrageToutClick ()
GUICtrlSetState ( $Button4, $GUI_ENABLE )
GUICtrlSetState ( $Button3, $GUI_DISABLE )
ConsoleWrite("Demarre" & @CRLF)
If $Scanner = 0 Then
$Scanner = 1
EndIf
EndFunc
Func VerifierToutClick ()
If $Scanner = 0 Then
Return
Else
If GuiCtrlRead($adresse1) <> "" Then
Estcequeleserveurrepond ($Verifier1, $adresse1, $heure1, $priorite1)
EndIf
EndIf
(Pour vous expliquer un peu)
StopClick et DemarrageClick sont les boutons qui permettent de démarrer les pings ou de stopper
Dans le fonction VerifierToutClick je n'ai selectionné que le bout de code qui permet d'interroger le premier serveur ( les 49 autres suivent )
Il y a 50 serveurs, à chaque ping envoyé et retour de l'état d'un serveur, cela s'incrémente de 1 et lorsque $LigneEnCours = 51 ça retourne à 1, cela permet de faire tester les serveurs en continu
Le problème que je rencontre est le suivant :
Je veux pouvoir faire une pause une fois que tout les serveurs ont été testés ( d'une minute ou plus )
Ce que j'ai réussi à faire avec Sleep() une fois que $LigneEnCours = 51
Cependant lorsque je dois tester moins de serveur ( 1 seul serveur par exemple ) je veux que le sleep s'active quand même ( pour éviter de continuellement interroger un unique serveur en continu ), mais je n'y arrive pas
Et je ne sais pas comment faire.
Si vous avez des questions, posez-les car c'est un peu compliqué pour moi d'être concis et clair sans faire un pavé énorme.
Merci