Je cherche a sortir d'une fonction en boucle à l'intérieur d'un programme. Je m'explique.
J'ai un programme perso qui tourne en permanence pendant que je travaille.
J'ai plusieurs raccourcis (cf code) qui me permettent d'ouvrir à chaque fois une fonction différente.
Code : Tout sélectionner
#NoTrayIcon
#AutoIt3Wrapper_Icon=..\..\QUALITE\icone\60b.ico
#AutoIt3Wrapper_UseX64=n
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.3.14.2
Auteur: JulienBoul - autoitscript.fr
Fonction du Script : couteau Suisse
#ce ----------------------------------------------------------------------------
#include <Array.au3>
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3>
; modification du ToolTip sur icone autoit du Systray (permet l'affichage de l'aide du logiciel)
TraySetState($TRAY_ICONSTATE_SHOW) ; Show the tray menu.
TraySetToolTip("Pour accéder à l'aide, appuyez simultanément sur Shift-Alt-0")
; liste des raccourcis utilisés.
HotKeySet("+!0", "Aide_Shortcut") ; Shift-Alt-0
HotKeySet("+!1", "Pourcentage") ; Shift-Alt-1
;HotKeySet("+!2", "mailmag") ; Shift-Alt-2
;HotKeySet("+!3", "Nom_mag") ; Shift-Alt-3
HotKeySet("+!4", "Renommer_pdf") ; Shift-Alt-4
;HotKeySet("+!5", "Vide") ; Shift-Alt-5
;HotKeySet("+!6", "Vide") ; Shift-Alt-6
;HotKeySet("+!7", "Vide") ; Shift-Alt-7
;HotKeySet("+!8", "Vide") ; Shift-Alt-8
HotKeySet("+!9", "Quitter") ; Shift-Alt-9
While 1
Sleep(100)
WEnd
; Shift-Alt-0
Func Aide_Shortcut()
MsgBox($MB_SYSTEMMODAL, "Raccourcis", "Aide ; Shift-Alt-0" & @CRLF & "Pourcentage ; Shift-Alt-1" & @CRLF & "Renommer_pdf ; Shift-Alt-4" & @CRLF & "Quitter ; Shift-Alt-9")
EndFunc ;==>Aide_Shortcut
; Shift-Alt-1
Func Pourcentage()
$nombre = InputBox("Calcul de 60% du nombre", "entrer le prix d'achat", "")
$pourcentage = 0.60; fixe le pourcentage souhaité
ClipPut ($nombre*$pourcentage)
EndFunc ;==>Pourcentage
; Shift-Alt-4
Func Renommer_pdf()
While 1
$Renommer_pdf = InputBox("SAISIE DU NOM DE FICHIER", "Vous pouvez entrer ici le nom de votre dossier.", "", "", "", "", 100, 100, 0, GUICreate("", 0, 0, 0, 0, Default, @SW_SHOWDEFAULT))
ClipPut ($Renommer_pdf)
Sleep (50)
WinActivate ("Adobe Reader") ; ouvre le logiciel dont une partie du titre comporte "Adobe Reader"
ProcessClose ("AcroRd32.exe") ; ferme le processus de Adobe Reader
Sleep (100)
Send ("!{TAB}")
Sleep (50)
Send ("{F2}")
Send ("^v")
Send ("{ENTER}")
Send ("{HOME}")
Send ("{ENTER}")
Sleep (1000)
ControlClick("SAISIE DU NOM DE FICHIER","","[CLASS:Edit; INSTANCE:1]","left")
If @error = 1 Then
Exit
EndIf
WEnd
EndFunc
; Shift-Alt-9
Func Quitter()
Exit
EndFunc ;==>Quitter
J'ai conçu mon logiciel un peu comme un couteau Suisse qui me fait gagner beaucoup en productivité.
Je suis embêté, j'ai une boucle infinie pour cette partie de code, et je souhaiterai que lorsque l'on clic sur annuler ou que l'on appuie sur "échap" ma boucle s’arrête.
J'avais réussi avec le raccourcis Shift-Alt-9 mais c'est mon programme entier qui se coupe, pas ma fonction.
Voici la partie de code qui me contrarie:
Code : Tout sélectionner
; Shift-Alt-4
Func Renommer_pdf()
While 1
$Renommer_pdf = InputBox("SAISIE DU NOM DE FICHIER", "Vous pouvez entrer ici le nom de votre dossier.", "", "", "", "", 100, 100, 0, GUICreate("", 0, 0, 0, 0, Default, @SW_SHOWDEFAULT))
ClipPut ($Renommer_pdf)
Sleep (50)
WinActivate ("Adobe Reader") ; ouvre le logiciel dont une partie du titre comporte "Adobe Reader"
ProcessClose ("AcroRd32.exe") ; ferme le processus de Adobe Reader
Sleep (100)
Send ("!{TAB}")
Sleep (50)
Send ("{F2}")
Send ("^v")
Send ("{ENTER}")
Send ("{HOME}")
Send ("{ENTER}")
Sleep (1000)
ControlClick("SAISIE DU NOM DE FICHIER","","[CLASS:Edit; INSTANCE:1]","left")
If @error = 1 Then
Exit
EndIf
WEnd
EndFunc
Cdt, Julien.


