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
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 :

Code : Tout sélectionner

WinWait("[CLASS:Notepad]")
Regarde la doc, c'est plutôt bien expliqué :wink:

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 :wink: