[R] Fonctionnement ErrorLevel

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Tilinou
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 07 mai 2014 11:43
Status : Hors ligne

[R] Fonctionnement ErrorLevel

#1

Message 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
Modifié en dernier par Tilinou le mer. 11 juin 2014 13:31, modifié 3 fois.
Tilinou
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 07 mai 2014 11:43
Status : Hors ligne

Re: ErrorLevel

#2

Message 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 !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: ErrorLevel

#3

Message par jguinch »

Merci de modifier le titre du sujet afin qu'il respecte les règles de présentation d'un message.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#4

Message 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:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Tilinou
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 07 mai 2014 11:43
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#5

Message 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 !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#6

Message 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 ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Tilinou
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 07 mai 2014 11:43
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#7

Message 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...
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#8

Message 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
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Tilinou
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 07 mai 2014 11:43
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#9

Message 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 ?
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#10

Message 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.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Tilinou
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 07 mai 2014 11:43
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#11

Message par Tilinou »

Merci beaucoup c'est nickel juste ce qui me fallait !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [...] Fonctionnement ErrorLevel

#12

Message par jguinch »

Passe le sujet en [R] si le problème est résolu :wink:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre