Bonjour à toutes et à tous,
Voilà je rencontre un problème, j'ai une interface composée de plusieurs boutons appelant respectivement une fonction. Lorsque l'on clic sur le bouton1, le script lance alors un programme annexe puis, à partir d'un fichier .txt, crée une liste de périphériques dans celui-ci.
Si cette liste existe déjà, une fenêtre d'avertissement s'ouvre alors pour nous en informer. Mon souhait est que si cette fenêtre pop, la
fonction stop son fonctionnement, et mette au premier plan l'interface de départ.
Je colle mon bout de code tout de même :
► Afficher le texte
Code : Tout sélectionner
Func crealist()
If WinExists($mainwin)=0 Then
Run ("C:\Program Files\RMAdmin\PmAdmin.exe")
sleep (6000)
If WinActive ($login)=1 Then
send ("!{F4}")
EndIf
ElseIf WinExists($mainwin)=1 Then
WinActivate($mainwin)
EndIf
send ("!g")
send ("n")
WinWaitActive ($liste_mfp)
send ("Liste des MFP")
send ("{ENTER}")
sleep (500)
; //////////////////////////
; Le problème se situe ici
; //////////////////////////
IF WinActive ("[TITLE:"&$mainwin&"; CLASS:#32770]") Then
send ("{ENTER}")
send ("!{F4}")
MsgBox (0, "Création de la liste", "La liste des MFP existe déjà, vous pouvez commencer l'exportation.")
WinActivate ($soft_win)
Exit
; Pour le moment j'emploie [b]exit[/b], mais ça ne correspond pas à ce que je souhaite puisque ça met fin au programme entier, et sans [b]exit[/b] et bien le programme continue et démarre la boucle.
; //////////////////////////
EndIf
send ("{INS}")
sleep (1000)
$file=FileOpen("liste_mfp.txt",0)
While 1
$groupe = 1 ; première partie de ligne : le nom du MFP
$ligne=FileReadLine($file)
if @error = -1 Then ExitLoop
$tab = StringSplit($ligne, " ")
send ($tab[$groupe])
sleep (500)
send ("{TAB}")
$groupe = 2 ; deuxième partie de ligne : l'IP du MFP
send ($tab[$groupe])
send ("!t")
IF WinActive ($login)=1 Then
WinActivate ($login)
Send ("login")
Sleep (500)
Send ("{TAB}")
Send ("password")
Sleep (500)
Send ("{ENTER}")
sleep (500)
EndIf
WEnd
send ("!{F4}")
EndFunc
Voilà, merci de votre aide.