Page 1 sur 1
[R] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 11:31
par Tilinou
Bonjour à tous,
Je débute avec autoIt et j'ai un petit problème avec le fonctionnement de ErrorLevel:
Code : Tout sélectionner
Run, notepad.exe
WinWait, Untitled - Notepad, , 3
if ErrorLevel
{
MsgBox, WinWait timed out.
return
}
else
WinMinimize ; Minimize the window found by WinWait.
Pourriez vous me l'expliquer en francais et me donne un code pour Scite ? Car je m'en sors pas
Merci d'avance
Tilinou
Re: ErrorLevel
Posté : mer. 11 juin 2014 11:54
par Tilinou
Voici le code que j'ai modifié pour scite
Code : Tout sélectionner
#include <MsgBoxConstants.au3>
Run("notepad.exe")
WinWait("Untitled - Notepad",20,3)
if @Error = 3 Then
MsgBox(48,"WinWait"," timed out")
else
MsgBox(48,"WinWait"," timed ok") ; Minimize the window found by WinWait.
EndIf
Le problème c'est qu'il me dit toujours que c'est "ok" alors que non...
Help plz !
Re: ErrorLevel
Posté : mer. 11 juin 2014 12:14
par jguinch
Merci de modifier le titre du sujet afin qu'il respecte les
règles de présentation d'un message.
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 14:57
par jguinch
@error n'est pas vraiment l'équivalent d'un errorlevel sous Dos ou AutoHotKey.
La fonction WinWait renvoie soit
le handle de la fenêtre soit
0 en cas d'échec, mais certainement pas
@error = 3.
Donc la syntaxe serait plutôt
► Afficher le texte
Code : Tout sélectionner
Run("notepad.exe")
$handle = WinWait("Untitled - Notepad",20,3)
If $handle = 0 Then
MsgBox(48,"WinWait"," timed out")
else
MsgBox(48,"WinWait"," timed ok") ; Minimize the window found by WinWait.
EndIf
Mais je pense que le problème se situe également dans le titre de la fenêtre : sous un Windows en français, le nom d'une nouvelle fenêtre notepad est
Sans titre - Bloc-notes. Il faut mieux privilégier la classe de la fenêtre, à savoir
Notepad (qu'on peut trouver à l'aide de
AutoIt Windows Info :
Regarde la doc, c'est plutôt bien expliqué

Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 15:08
par Tilinou
Merci beaucoup de ta réponse !
Je vais tester ça !
Alors j'ai testé et ça a foiré, j'ai enlevé le temps du "Winwait" et ça marche !
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 15:15
par jguinch
Dans ton WinWait, tu as mis le paramètre 20 : il fait référence à du texte afficher dans la fenêtre, est-ce voulu ?
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 15:40
par Tilinou
euh non c'était le temps
et le 3 pour le errorlevel
vu que je comprenais pas grand choses, j'ai testé plusieurs paramètre...
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 15:47
par jguinch
D'où l'intérêt de lire la doc.
WinWait ( "title" [, "text" [, timeout = 0]] )
1er paramètre : titre
2ème paramètre : texte dans la fenêtre*
3ème paramètre : timeout
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 16:01
par Tilinou
Par contre c'est normal qu'avec ce code:
Code : Tout sélectionner
Run("notepad.exe")
$handle = WinWait("[CLASS:Notepad]")
If $handle = 0 Then
MsgBox(48,"WinWait"," timed out")
else
MsgBox(48,"WinWait"," timed ok") ; Minimize the window found by WinWait.
EndIf
Si je change Notepas en Note pour faire comme s'il y avait une erreur, le 2ème message n'apparait pas ?
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 16:12
par jguinch
Oui, parce que ton script attend un fenêtre de type class=note, ce qui n'aboutira pas. Donc ton script continuera à tourner dans le vide...
$handle = WinWait("[CLASS:Note]", "", 3) attendra 3 secondes avant de retourner $handle = 0.
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 16:34
par Tilinou
Merci beaucoup c'est nickel juste ce qui me fallait !
Re: [...] Fonctionnement ErrorLevel
Posté : mer. 11 juin 2014 19:28
par jguinch
Passe le sujet en [R] si le problème est résolu
