WinParrot® 2.1.0
WinParrot.com
Principales nouveautés
Enregistrement
et lecture plus 'intelligent', fonctionne avec les sous menus. Nouvelles fonctions : Verbose,
IfWindow, IfProcess
Nouvelle
fonction Studio 'Capture' : Vous pouvez actualiser les captures d'écrans
Contrôle
des couleurs 32 bits.
Version : 2.1.0
Février 2012
N° Document : A01022012
Sommaire
2. Installation
/ Désinstallation
10.3. Les
variables ‘Utilisateur’
11.1. L’opérateur
d’affectation
11.3. Les
opérateurs d’entiers ou de réels
11.4. Les
operateurs de chaines de textes
13. Les
boucles (loops) et les aiguillages (switches)
13.2. Les
aiguillages (Switches)
14.1. Supprimer
un enregistrement
14.2. Déplacer
un enregistrement
14.3. Copier
un enregistrement
15.1. Activer
/ Désactiver le mode Debug
16.1. Activer
/ Désactiver le mode Trace
17. Exécuter
en ligne de commande
17.1. Exécuter
une macro en ligne de commande
17.2. Planifier
l’exécution d’une macro
17.3. Exécuter
une macro avec des variables
Guide Utilisateur WinParrot version
2.0
Le numéro
de ce document est A01102010. Pour
commander ce document veuillez utiliser
cette référence.
Le
programme (qui inclut le logiciel et la documentation) sont la propriété de
WinParrot. Le ‘Reverse Engineering’ de programmes est interdit.
La
documentation du programme doit être utilisée uniquement pour aider les
utilisateurs du logiciel WinParrot sous les mêmes conditions définies dans le
contrat de licence.
Les informations
contenues dans ce document sont susceptibles d’être changées sans aucune
notification. Si vous constatez des anomalies dans ce document veuillez
informer WinParrot à l’adresse suivante : Support@WinParrot.com .Winparrot ne
garanti pas que ce document ne contient pas d’erreurs. Aucunes parties du
programme ou de sa documentation ne peuvent être reproduites sans un accord
écrit de WinParrot.
RESTRICTIONS
Ce
programme ne doit pas être utilisé avec toutes applications illégales, dangereuses
ou critiques tels que des applications médicales, d’aviation, militaire ou
autres. WinParrot se dégage de tous dommages physiques ou financiers dus à son
utilisation.
WinParrot,
WinParrot.com sont des noms réservés.
Pour
activer le logiciel lors de la première exécution le logiciel vous invite à accepter
les conditions générales d’utilisation disponibles à l’adresse suivante : http://www.winparrot.fr/wpcg_1_1.html
WinParrot est le perroquet de Windows. Si vous effectuez quotidiennement des tâches répétitives sans valeurs ajoutées sur Windows XP, Vista ou Windows 7 il vous permettra de gagner beaucoup de temps.
Pour cela il vous suffit de lancer l’enregistrement, cela génère un fichier l’extension ‘wpr’ contenant toutes vos actions réalisées sur n’importe quelle application (SAP, Oracle Applications, Internet Explorer...). Vous pouvez enrichir le document enregistré afin d’y inclure des points de contrôle, des boucles, des effets sonores, des interactions, des données d’une feuille Excel,etc...
Aperçu de l’écran principal (exemple avec 2 documents WinParrot ouverts, un utilisant Internet Explorer et l’autre utilisant la calculatrice)
Description de l’écran principal.
(1)
Titre :
Donne le nom complet du fichier WinParrot ouvert.
Vous pouvez changer de titre à tout moment avec la fonction SetTitle()
(2) Menus et barre des boutons : Pour plus de détails sur un bouton vous pouvez déplacer le curseur de la souri sur celui-ci.
(3)
Liste des
enregistrements : L’enregistrement
sur fond bleu est l’enregistrement sélectionné (ici le 11ème en
cours d’édition ou en cours de lecture).
En colonne nous avons :
-N° : C’est le numéro de l’enregistrement.
-Jouer : Colonne pour activer ou désactiver un enregistrement. Si une
ligne est désactivée elle sera totalement ignorée lors de la lecture de la
macro.
-Titre : C’est le titre de l’application cible (ici la ‘Calculatrice’).
Si l’application cible a une partie de son titre variable vous pouvez changer
ce titre et utiliser des caractères joker (‘*’ ou ‘?’).
-Commande : Ligne de commande (11) contenant plusieurs instructions
séparées par le caractère ‘ ;’.
(4) Copie écran, zoom, clique et sélection d’une image : Dans cette zone vous avez une copie écran prise lors de l’enregistrement de la macro. Vous pouvez aussi avoir une sélection d’une image ou/et un point à cliquer.
(5) Rectangle rouge: Si le code de la macro (11) appelle une fonction nécessitant une sélection d’image (exemple IfShape, IfImage) alors un petit rectangle rouge est automatiquement ajouté. Vous pouvez redimensionner ou déplacer la sélection avec les petits carrés jaunes.
(6) Le trait en pointillé rouge entre le carré (5) et la croix (7) montre que le clique sera relatif à l’image recherchée. Sans ce trait le clique sera relatif au bord haut et gauche.
(7) Croix rouge représentant le pixel où WinParrot cliquera. Cette croix apparait automatiquement si l’enregistrement (11) contient au moins un événement souris (exemple ‘\[LBUTTON]’).
(8) Zoom de l’image sélectionnée ou/et de l’événement souris. Vous pouvez déplacer ce zoom en cliquant dessus ou en double cliquant n’importe où vous le voulez.
(9) Avec le petit triangle jaune vous pouvez redimensionner le zoom.
(10) Version de WinParrot.
(11) Ligne de commande contenant 3 instructions :
:DEB =>
Tag/Label/Lieu utilisé par la fonction GoTo().
IfImage(3,"V[LBUTTON]",) => Fonction de recherche de l’image (5).
Si l’image est trouvée pendant
un temps maximum de 3s alors clique (7) relatif à celle-ci. Continuer si
l’image n’est pas trouvée.
If($VAR1>2,Trace(,,),); => Désactivation conditionnelle
du mode trace si la variable $VAR est supérieure à 2.
La dernière version de WinParrot ne s’installe plus, il vous suffit de le télécharger la dernière version directement sur le site officiel http://www.winparrot.com, (l’exécutable ‘winparrot.exe’) en le copiant sur votre poste de travail dans l’un de vos répertoires au choix.
|
Remarque: Veillez à bien choisir le répertoire où vous copiez l’exécutable ‘winparrot.exe’ car Windows assignera automatiquement tous les fichiers ‘*.wpr’ à celui-ci. |
Aussi, si vous copiez ‘winparrot.exe’ sous ‘c:\temp’, à l’ouverture d’un fichier ‘test.wpr’ (en double cliquant dessus) Windows appellera toujours l’exécutable c:\temp\winparrot.exe .
WinParrot n’a plus besoin d’avoir ses propres répertoires, DLL… cela à plusieurs avantages :
· Installation ultra simple
· Désinstallation : il vous suffit de supprimer d’exécutable, il ne restera donc plus de traces qui polluent votre ordinateur.
· Mise à jours rapides et très simple, par remplacement de l’exécutable (WinParrot ne tente jamais comme certains programmes (ex java…) d’aller voir à votre insu sur internet si une nouvelle version est disponible).
· WinParrot s’auto vérifie. Si un utilisateur malveillant a modifié l’exécutable, WinParrot vous informera qu’il a été corrompu et vous invitera à recharger une nouvelle version.
·
WinParrot
intègre son propre antivirus. WinParrot détecte tout code étranger, aussi
si un virus ou un spyware tente d’infecter l’exécutable, WinParrot vous informera qu’il a été corrompu et vous
invitera à recharger une nouvelle version (si le problème persiste nous vous
invitons à installer ou à mettre à jours votre antivirus et à scanner tous vos
disques).
Si Winparrot est infecté il le signale par cet écran :
Si vous avez bien :
· Vérifier qu’il n’y a pas de virus
·
Téléchargé à nouveau WinParrot.
Et que ce message
apparaît toujours, vous pouvez lancer
l’exécutable WinParrot.exe depuis le fichier zip sans le décompressé (les virus
s’introduisent rarement dans des fichiers compressés).
Pour lancer l’enregistrement il faut cliquer sur le bouton .
S’il s’agit d’un nouveau document WinParrot vous demandera de spécifier un dossier ainsi qu’un nom de fichier.
Si vous avez ouvert un document les nouveaux enregistrements seront mis à la fin de celui-ci.
Lorsque WinParrot enregistre vos actions le petit icone dans la barre des tâches passe du vert au rouge.
L’arrêt de l’enregistrement peut se faire à tout moment avec le bouton ou avec la touche [END] (Touche Fin, définie par défaut).
Remarques importantes :
Afin de réussir vos enregistrements veillez à :
· Dimensionner la fenêtre principale de l’application cible la plus petit possible (cela diminue la taille du fichier wpr crée, réduit la consommation CPU et mémoire) avant de lancer l’enregistrement.
· Ne pas aller trop vite, car WinParrot doit avoir le temps de sauvegarder toutes vos actions tout en réalisant des copies d’écrans.
· Cliquer sur les messages qui valident vos opérations (cela crée un enregistrement que vous pourrez transformer en point d’arrêt avec les fonctions IfImage/IfShape si le message attendu ne s’affiche pas)
Voir la vidéo 'How to record a Windows macro with the freeware WinParrot' sur ou charger la vidéo au format AVI.
Pour lancer la lecture il faut cliquer sur le bouton . La lecture commence au 1er enregistrement et à la 1ere instruction.
Lorsque WinParrot lit les enregistrements le petit icone dans la barre des taches passe du vert au bleu.
Ne sont lus que les enregistrements ou ‘Jouer’ est activé (symbolisé par et non ). Vous pouvez activer/désactiver la lecture d’un enregistrement en cliquant sur les icones /).
L’arrêt de la lecture peut se faire à tout moment avec la touche [END] (Touche Fin, défini par défaut, vous pouvez changer cette touche avec la fonction SetEndKey())
Pour relancer la lecture il faut cliquer à nouveau sur le bouton , WinParrot vous propose alors 3 alternatives :
Un enregistrement est composé essentiellement d’une image prise lors d'un enregistrement ainsi que d'une ligne de commande. Lorsque vous êtes en mode enregistrement WinParrot prend des clichés à chaque évènement en fonction des options choisies. Il enregistre aussi le texte que vous avez saisi sous forme d'une ligne de commande, composée d’une instruction simple (ex "Mon texteV[RETURN]", aperçu) . Vous pouvez modifier cet enregistrement pour
· Modifier l’instruction (Modification du texte ou/et ajout de fonction...).
· Ajouter des instructions (séparées par le caractère ‘ ;’)
· Modifier la zone de recherche d’image
· Modifier la position de la souris (point ou vous voulez cliquer par exemple).
· Désactiver cet enregistrement (en cliquant sur l’icone)
Une ligne de commande est constituée de zéro à n instruction(s) séparée(s) par le caractère ";" (aperçu). Lorsque WinParrot lit une ligne de commande il commence par la première instruction de gauche à droite, il l'exécute et après seulement il l'envoie le texte et les événements à l'application cible.
Ainsi la ligne de commande ‘A’ composée des 2 instructions :
"Mon texte" ; Wait(1000)
N’est pas équivalente à la ligne de commande ‘B’ composée d’une seule instruction :
"Mon texte"&Wait(1000)
La commande ‘A’ envoie à
l’application cible le texte "Mon
texte" puis attend 1s, alors que la commande ‘B’ attend le retour de
la fonction Wait(1000)
pendant 1s et envoie ensuite le texte "Mon texte".
Une instruction est composée de texte, d'entiers, de variables, de fonctions et d'operateurs (aperçu).
Une instruction sert à :
· Envoyer du texte ou des évènements à une application .
-"Mon texte"
-"Mon texteV[RETURN]"
-"Mon texte "&Ask("Comment
?", "Bien",
"Tres bien",
"Pas bien", "null")&"."
-1+2 (envoie 3 à l’application cible)
· A affecter à une variable une valeur.
-$MA_VARIABLE=1
-$MON_TEXTE="Toto "
· Effectuer un calcul.
-$MA_VARIABLE=$MA_VARIABLE+1
-$MON_TEXTE=
"Toto "&Ask("Comment
?","Bien","Ok","Pas
bien","null")&"."
·
A insérer un lieu (utilisable par la fonction
Goto())
-:LOCATION
· A réaliser un test ou/et une redirection, une pause, arrêter la lecture.
-If($I>3, "Ok",
"Not Ok")
-IfImage(5, "V[RETURN]",
Stop()),
-Goto(:LOCATION,1)
-Wait(200)
-Stop()
Lorsque vous lancer la lecture :
· Chaque instruction est évaluée et uniquement après son résultat (s’il y en a) est envoyé à l’application cible.
· Toute instruction commencée est terminée quelque soit l’origine de l’arrêt (par fonction stop() dans celle-ci ou par appui sur la touche [END] pendant la lecture).
Les lieux sont des balises qui sont à insérer entre les instructions.
Vous pouvez rediriger la lecture en cours vers ce lieu grâce à la fonction GoTo(). Un même nom de lieu peut-être utilisé plusieurs fois dans un document car la fonction GoTo() prend en deuxième argument l’occurrence recherchée. Les lieux commencent par le caractère ":" et peuvent contenir des lettres, des chiffres ou le caractere "_".
Exemple : :MON_LIEU
Les évènements tels que l’appui, le relâchement d’une touche ou d’un bouton de la souris sont enregistrés dans les chaines de textes sous la forme X[Touche]:
Commande ‘X’ |
Description |
|
|
\ |
Pour
l’appui |
/ |
Pour le relâchement |
V |
Pour
l’appui et le relâchement |
Les [Touche]s suivantes sont reconnues automatiquement comme des événements :
‘[Touche]’ |
Description |
[ALT] |
Touche
Alt |
[ALT] |
Touche
Alt |
[APPS] |
Touche
Apps |
[BACK] |
Touche
Suppr |
[CAP] |
Touche
Maj |
[CLR] |
Touche
Del |
[CTRL] |
Touche
Ctrl |
[DEL] |
Touche
Suppr |
[DOWN] |
Touche
Bas |
[END] |
Touche
Fin Attention cette touche est la touche par défaut pour arrêter
l'enregistrement ou la lecture. |
[ESC] |
Touche
Echap |
[EXECUTE] |
Touche
Exécution |
[F1] à
[F12] |
Touches
fonction du clavier |
[HELP] |
Touche
Aide |
[HOME] |
Touche
Home |
[INSERT] |
Touche
Inser |
[INSERT] |
Touche
Inser |
[LBUTTON] |
Bouton gauche de la souris |
[LEFT] |
Touche
Gauche |
[LWIN] |
Touche
Gauche de Windows |
[NEXT] |
Touche
Page suivante |
[PAGEUP] |
Touche
Page précédente |
[PAUSE] |
Touche
Pause |
[PRINT] |
Touche
Imp |
[RBUTTON] |
Bouton droit de la souris |
[RETURN] |
Touche
Entrée |
[RIGHT] |
Touche Droite |
[RWIN] |
Touche
Droite de Windows |
[SELECT] |
Touche
Select |
[SHIFT] |
Touche
Shift |
[SNAPSHOT] |
Touche
Imp écran |
[UP] |
Touche Haut |
|
Remarques: Le double clic est enregistré sous V[LBUTTON]V[LBUTTON] L’espace est enregistré comme un caractère ‘ ‘. |
Selon les options choisies (non disponible actuellement) vous pouvez demander à ne pas créer de nouvel enregistrement pour un événement donné.
Pour ne pas générer des fichiers
*.wpr trop volumineux vous pouvez aussi spécifier de fusionner certains événements
(ex \[LBUTTON] et /[LBUTTON] en V[LBUTTON]). Lorsqu’une ligne de commande
contient [LBUTTON] ou [RBUTTON] WinParrot affiche sur la capture écran une
croix rouge qui représente la position de la souris (Vous pouvez déplacer cette
croix).
Astuce : Pour trouver le code d’une touche particulière lancez l’enregistrement, basculez sur une application autre que WinParrot (car WinParrot ne s’enregistre pas), Appuyez sur la touche en question et arrêtez l’enregistrement.
Les variables sont utilisées pour mémoriser des chaines de texte, des
entiers ou des réels. Elles sont liées au document ouvert. Si deux documents
WinParrot ou plus sont ouverts chaque document a ses propres variables.
Quelques variables sont initialisées lors de l’ouverture et de la lecture d’un document WinParrot. Ces variables ne sont pas modifiables. Les principales variables sont :
· $WPR_LINE_NB : Lors de l’ouverture d’un document, contient le nombre d’enregistrement de celui-ci.
· $WPR_LINE : Lors de la lecture, contient le numéro de la ligne en cours.
· $WPR_INST_NB : Lors de la lecture contient le nombre d’instruction dans la ligne de commande en cours.
· $WPR_INST : Lors de la lecture, contient le numéro de l’instruction en cours d’exécution.
· $WPR_PATH : Lors de la lecture, contient le répertoire du fichier wpr en cours de lecture (cette chaine inclue le caractère ‘\’ à la fin).
Les variables temps donnent sous un format défini la date et l’heure actuelles. Les deux variables de temps sont :
· $DATE : Contient la date actuelle avec le format par défaut ‘YYYY/MM/DD’ où YYYY est l’année, MM est le mois et DD est le jour.
· $TIME : Contient l’heure actuelle avec le format par défaut ‘HH:MM:SS’ pour HH heure, MM minutes et SS secondes.
Ces deux variables sont
modifiables, vous pouvez leur affecter une valeur pour changer le format de
retour lorsque vous les appelez.
Exemples :
MsgBox($DATE&"-"&$TIME);
=> Ouvre une fenêtre avec ‘2011/05/16-16:33:56’
$DATE="YYMMDD"; $TIME="HHMMSS"; $V=$DATE&"-"&$TIME
=> Initialise la variable $V avec la valeur chaine ‘110516-163356’.
$TIME="HHMMSS"; If($TIME>160000,Stop(),)
=> Stop la lecture en cours s’il est 16h passé.
Les variables ‘Utilisateur’ sont implicitement déclarées lors de leur première affectation. Elles peuvent changer de type de contenu à tout moment. Les noms des variables commencent par le caractère ‘$’ et sont suivis de 1 à 29 caractères parmi [A-Z], [0-9] et ‘_’.
Pour affecter une valeur à une variable il faut insérer une instruction dans une ligne de commande et utiliser l’operateur d’affectation ‘=’.
La syntaxe est la suivante :
$NOM_VARIABLE=<instruction> ou
vous pouvez utiliser la fonction SetVar() : SetVar($MA_VARIABLE, "Toto").
Exemples:
$MA_VARIABLE=1
$MA_VARIABLE="Toto"
$MA_VARIABLE=Ask("Valeur
?","Un","1",
"Deux","2")&"."
L’opérateur d’affectation ‘=’ a la syntaxe suivante :
$<Nom de variable>=<Instruction>
Où <Instruction>
est une instruction qui retourne un entier ou une chaine texte
Si la variable n’existe pas elle est automatiquement déclarée et contient le
résultat de l’instruction. Si la variable existe déjà le contenu de la variable
est remplacé par le résultat de l’instruction. Pour affecter une valeur à une
variable à l'intérieur d'une fonction vous devez utiliser la fonction SetVar().
Les opérateurs logiques s’utilisent avec la syntaxe suivante :
<Instruction1><Operateur><Instruction2>
Où <Instruction1> et <Instruction2> sont des instructions qui retournent des entiers (à l’exception des opérateurs == et != qui peuvent aussi comparer des textes).
Les opérateurs d’entiers ou de réels s’utilisent avec la syntaxe suivante
<Instruction1><Operateur><Instruction2>
Où <Instrunction1> et <Instruction2> sont des instructions qui retournent des entiers ou des réels.
Exemples
$MA_VARIABLE=$MA_VARIABLE+2
$V=(($I-1.1)*5)%3
Les opérateurs de chaines de textes s’utilisent avec la syntaxe suivante
<Instruction1><Operateur><Instruction2>
Où <Instruction1> et <Instruction2> sont des instructions qui retournent des chaines de textes.
Exemple
$MA_VARIABLE="["&$MA_VARIABLE&"]"
Remarque : Cet operateur est souvent utilisé pour fusionner des instructions qui peuvent même ne pas retourner de texte. (Exemple MsgBox("Erreur inconnue")&Stop()) |
Les fonctions permettent à WinParrot d’interagir avec :
Vous pouvez appeler une fonction sans donner de valeurs aux arguments.
Chaque fonction peut définir ses valeurs d’arguments par défaut, si cela n’est pas le cas pour un argument donné alors :
Si l’argument doit être un entier ou un réel la valeur sera zéro.
Si l’argument doit être une chaine la valeur par défaut sera la chaine vide.
Par exemple si une instruction dans une macro ‘c:\demo.wpr’ contient:
Trace(,,)ó Trace(0,
"TFORMAT","c:\demo.html")
- Le 1er argument attendu était un entier mais comme il est vide il est remplacé par zéro.
- Le 2ème argument attendu était une chaine contenant un format mais comme il est vide la fonction Trace utilise le format par défaut TFORMAT.
- Le 3ème argument attendu était une chaine contenant le nom partiel ou complet du fichier trace. La fonction Trace n’ayant aucune information elle utilisera le dossier, le nom de fichier et le type par défaut : « <répertoire du wpr>\<nom du wpr>.<type par défaut=.html> »
Remarque : Chaque argument de fonction doit être composé d'une seule instruction, par conséquence si vous souhaitez exécuter deux ou plus d'instructions vous devez les fusionnez à l'aide de l'opérateur '&'. Example : MsgBox("Unknown error ")&Stop() |
Description
Fonction qui retourne la valeur absolue d’un entier ou d’un réel.
Syntaxe Abs(<Instruction>)
Arguments
<Instruction>: Instruction qui doit retourner un entier ou
un réel.
Chaîne de retour
Un entier ou un réel supérieur ou égal à zéro.
Examples
Abs(30) enverra ‘30’ à l’application cible.
MsgBox("Abs(-10.15*2)="&ToChar("%0.3f",Abs(-10.15*2))) ouvre une fenêtre avec ‘Abs(-10.15*2)=20.300’.
Description
Fonction qui fixe le mode de bascule en premier plan de l’application cible (Celle-ci est définie sur chaque ligne d’enregistrement).
Syntaxe AppForeground(<Inst switch_mode>,<Inst select_mode>)
Arguments
<Inst switch_mode> : Instruction
qui doit retourner un entier compris entre 0 et 2.
<Inst select_mode> : Instruction
qui doit retourner un entier compris entre 0 et 3.
Si <Inst
switch_mode>=0 alors
l’application cible ne sera jamais mis au premier plan, c’est l’application qui
est déjà au premier plan qui recevra les événements émis par WinParrot (texte,
mouvement de la souri…). Les fonctions de recherche comme IfShape ou Ifimage
rechercherons alors uniquement dans la fenêtre au premier plan.
Si <Inst
switch_mode>=1 alors
l’application cible sera mis au premier plan avant l’exécution de chaque
instruction.
Si <Inst switch_mode>=2 alors l’application cible sera toujours mis au premier plan avant l’exécution de chaque instruction et dès que WinParrot en aura besoin (pendant l’exécution de fonction comme IfImage()). Avec cette valeur, pendant la lecture vous ne pouvez pas changer manuellement d’application au premier plan.
Si <Inst
switch_mode>=1 ou 2 et <Inst select_mode>=0 les sélections de l’application cible se
fait en automatique sur le titre de la fenêtre ou le nom de l’application.
Si <Inst
switch_mode>=1 ou 2 et <Inst select_mode>=1 les sélections de l’application cible se
fait en automatique sur le titre de la fenêtre et le nom de l’application.
Si <Inst
switch_mode>=1 ou 2 et <Inst select_mode>=2 les sélections de l’application cible se
fait uniquement sur le titre de la fenêtre.
Si <Inst
switch_mode>=1 ou 2 et <Inst select_mode>=3 les sélections de l’application cible se
fait uniquement sur le nom de l’application.
Chaîne de retour
Aucune.
Remarques
Cette fonction n’interrompt pas la lecture.
Le changement sera effectif avant l’exécution de toutes les instruction suivantes.
Si switch_mode est 1 ou 2 l’application cible sera toujours au premier plan dès que celle-ci sera disponible. Si celle-ci n’est pas disponible pendant le temps définie par la fonction AppWait() un message d’erreur est affiché et la lecture est arrêtée.
Si switch_mode est 0 l’agument <Inst select_mode> n’est pas utilisé.
Par defaut WinParrrot initialise switch_mode à 2 et select_mode> à 0.
Exemple
Après l’execution de cette instruction :
AppForeground (1,0)
WinParrot mettra en premier plan l’application cible avant l’exécution de toutes les instructions suivantes. Si vous changez d’application au premier plan, WinParrot ne va pas forcer l’application cible au premier plan même s’il en a besoin par exemple lors de recherche avec la fonction IfImage.
Description
Fonction qui permet de changer le mode de redimensionnement de l’application cible.
Syntaxe AppResize
(<Inst mode>,<Inst Width>,<Inst
Heigth>,<Inst X>,<Inst Y>)
Arguments
<Inst mode> : Instruction
qui doit retourner un entier compris de 0 à 3 :
Si 0 alors aucun redimensionnement n’est réalisé.
Si 1 alors l’application cible sera redimensionnée comme elle
était lors de l’enregistrement.
Si 2 alors l’application cible sera redimensionnée suivant <Inst Width> et <Inst Heigth>.
Si 3 alors l’application cible sera redimensionnée et
repositionnée suivant <Inst
Width>,<Inst Heigth>,<Inst X> et <Inst
Y>.
<Inst Width> : Instruction qui doit retourner un entier,
cela sera la largeur en pixel.
<Inst Height> : Instruction qui doit retourner un entier,
cela sera la hauteur en pixel.
<Inst X> : Instruction qui doit retourner un entier,
cela sera la position X en pixel.
<Inst Y> : Instruction qui doit retourner un entier,
cela sera la position Y en pixel
Chaîne de retour
Aucune.
Remarque
Le changement demandé n’est pas réalisé immédiatement mais avant l’exécution de toutes les instructions suivantes.
Exemples
Suite à l’exécution de l’instruction suivante :
AppResize (3,200, 200, 200, 200)
Avant l’exécution de toutes les instructions suivantes celle-ci, les applications cibles seront déplacées à la position (200,200) et redimensionnées à 200 x 200 pixels.
Suite à l’instruction suivante :
AppResize (1,,,,)
Avant l’exécution de toutes les
instructions suivantes celle-ci, les applications cibles seront redimensionnées
comme elles étaient lors de l’enregistrement.
Description
Fonction qui permet de changer le temps maximum d’attente en secondes de l’application cible. Dès que l’application cible est disponible elle est mis au premier plan. Si l’application cible n’est pas disponible dans le temps défini Winparrot arrête la lecture et affiche un message d’erreur.
Syntaxe AppWait(<Inst time>)
Arguments
<Inst time > : Instruction qui doit retourner un entier,
cela sera le temps maximum d’attente de l’application cible en secondes.
Chaîne de retour
Aucune.
Remarque
Le changement demandé n’est pas réalisé immédiatement mais avant l’exécution de toutes les instructions suivantes.
Si la fonction AppForeground(<Inst switch_mode>,<Inst select_mode>) a été appelée auparavant avec <Inst switch_mode>=0 alors l’appel à la fonction AppWait n’a pas de sens puisque WinParrot utilisera l’application qui est en premier plan.
Si l’application cible n’est pas disponible pendant le temps maximum spécifié WinParrot stop la lecture.
Exemple
Suite à l’instruction suivante :
AppWait(30)
Avant l’exécution de toutes les instructions suivantes celle-ci, les applications cibles seront attendues (si elles ne sont pas déjà présentes) au maximum 30 secondes.
Description
Fonction qui demande à l’utilisateur de choisir parmi deux alternatives et qui exécute une des deux instructions spécifiées en fonction du choix de l’utilisateur.
Syntaxe Ask(<Inst 1>,<Inst 2>,<Inst 3>,<Inst 4>,<Inst 5>)
Arguments
<Inst 1> : Instruction
qui doit retourner une chaine texte contenant la question.
<Inst 2> : Instruction qui doit retourner une chaine
texte contenant le libellé du bouton 1
<Inst 3> : Instruction qui doit être exécutée si
l’utilisateur appuis sur le bouton 1.
<Inst 4> : Instruction qui doit retourner une chaine
texte contenant le libellé du bouton 2
<Inst 5> : Instruction qui doit être exécutée si
l’utilisateur appuis sur le bouton 2.
Chaîne de retour
Chaîne issue de l’instruction 1
si l’utilisateur clique sur le premier bouton, sinon chaine issue de
l’instruction 2.
Remarque
Cette fonction suspend la lecture en cours et attend la réponse de l’utilisateur.
Exemple
L’instruction suivante :
Ask("Que voulez vous faire ?","Continuer..",Say("Ok"),"Arrêter!",Stop())
ouvre l’écran suivant :
Description
Fonction qui demande à l’utilisateur de choisir parmi 3 alternatives et qui exécute une des trois instructions spécifiées en fonction du choix de l’utilisateur.
Syntaxe Ask3(<Inst 1>,<Inst 2>,<Inst 3>,<Inst 4>,<Inst 5>,<Inst 6>,<Inst 7>)
Arguments
<Inst 1> : Instruction
qui doit retourner une chaine texte contenant la question.
<Inst 2> : Instruction qui doit retourner une chaine
texte contenant le libellé du bouton 1
<Inst 3> : Instruction qui doit être exécutée si
l’utilisateur appuis sur le bouton 1.
<Inst 4> : Instruction qui doit retourner une chaine
texte contenant le libellé du bouton 2
<Inst 5> : Instruction qui doit être exécutée si
l’utilisateur appuis sur le bouton 2.
<Inst 6> : Instruction qui doit retourner une chaine
texte contenant le libellé du bouton 3
<Inst 7> : Instruction qui doit être exécutée si
l’utilisateur appuis sur le bouton 3.
Chaine de retour
Chaine issue de l’instruction 1 si l’utilisateur clique sur le 1er bouton,
Chaine issue de l’instruction 2 si l’utilisateur clique sur le 2ème bouton,
Chaine issue de l’instruction 3 si l’utilisateur clique sur le 3ème bouton,
Remarque
Cette fonction suspend la lecture en cours et attend la réponse de l’utilisateur.
Exemple
L’instruction suivante :
Ask3("Que voulez vous faire ?",
"Continuer..",Say("Ok"),"Arrêter!",Stop(),"Hello",Say("Hello")&"HelloV[RETURN]) ouvre l’écran suivant :
Description:
Fonction qui émet un son à une fréquence et pendant une période données.
Syntaxe: Beep(<Entier 1>,<Entier 2>)
Arguments:
<Entier 1> : Instruction qui doit retourner un entier
>0 cela sera la fréquence en Hz.
<Entier 2> : Instruction
qui doit retourner un entier >0 cela sera la durée du son en millisecondes.
Chaine de retour: Aucune
Remarque: Fonction qui émet un son par le haut parleur interne du PC., même si les hauts parleurs sont désactivés. Cette fonction suspend la lecture pendant la durée du son.
Exemples: Son d’une fréquence de 3000Hz pendant 0,1s : Beep(3000,100)
Description:
Fonction qui permet d’activer ou de désactiver le mode debug.
Voir chapitre ‘Debuger vos macros’ pour plus d’information
Syntaxe: Debug(<Inst Niveau>)
Arguments:
<Inst Niveau> : Instruction qui doit retourner un entier
compris entre 0 et 7.
Le niveau 0 désactive le mode debug et le niveau 7 est le niveau avec lequel vous aurez un maximum
de point d’arrêts.
Chaîne de retour:
Aucune.
Remarque:
Le changement demandé n’est pas réalisé immédiatement mais pendant l’exécution de toutes les instructions suivantes. Vous pouvez changer le niveau de debug à tout moment en cochant/décochant les case sur l’écran spécifique au mode debug.
Exemple:
Suite à l’instruction suivante : Debug(7)
Vous obtiendrez au moins trois point d’arrêt par instruction.
Suite à l’instruction suivante : Debug(0)
Le mode debug sera désactivé.
Voir la vidéo 'How to use the Debug & Trace functions' sur ou charger la vidéo AVI .
Description:
Fonction qui retourne le temps passé depuis le dernier appel à la fonction ResetChrono().
Syntaxe: GetChrono(<Inst>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le format du texte en retour souhaité. Le format peut
contenir les tags suivants :
"%H" Pour
afficher les heures.
"%M" Pour
afficher les minutes.
"%S" Pour
afficher les secondes.
"%MS" Pour
afficher les millisecondes.
Chaine de retour:
La chaine résultant du temps passé depuis le dernier appel à la fonction ResetChrono() au format spécifié par le paramètre <Inst> .
Remarque: Si <Inst> est vide le format suivant est utilisé : "%H:%M:%S.%MS"
Exemples:
ResetChrono() ;
Wait(1300) ; GetChrono() ó
"00:00:01.300"
ResetChrono() ;
Wait(1300) ; GetChrono("%S%MS") ó "01300"
Description:
Fonction qui retourne le texte du presse-papier.
Syntaxe: GetClipboard()
Arguments: Aucun
Chaine de retour: Le texte contenu dans le presse-papier.
Remarque: Cette fonction retire au texte les caractères retour à la ligne qu’insèrent certaines fonction (comme Excel). Pour modifier le presse-papier utilisez la fonction ‘SetClipboard’.
Exemples:
Copier le contenu du
presse-papier dans la variable
$PP : $PP=GetClipboard()
Copier le contenu du presse-papier sur l’application cible s’il n’est pas vide :
If(GetClipboard()=="",Stop(),"\[CTRL]v/[CTRL]")
ó If(GetClipboard()=="",Stop(),GetClipboard())
Description:
Fonction qui spécifie à WinParrot la prochaine instruction à exécuter (après avoir fini l’exécution de l’instruction en cours et avoir envoyé à l’application cible le résultat de celle-ci). Il existe deux syntaxes pour cette fonction.
Syntaxe 1: Goto(:LOCATION,<Entier 1>)
:LOCATION: Lieu qui doit être présent dans le document
ouvert.
<Entier 1> : Instruction
qui doit retourner un entier >0 cela sera le numéro de l’occurrence du lieu.
Syntaxe 2: Goto(<Entier 1>,<Entier 2>)
<Entier 1> : Instruction qui doit retourner un entier >0
cela sera la ligne de la prochaine instruction à exécuter.
<Entier 2> : Instruction
qui doit retourner un entier >0 cela sera le numéro de l’instruction à
exécuter.
Chaine de retour: Aucune
Remarques : L’exécution de l’instruction en cours n’est pas interrompue par cette fonction. Les deux instructions suivantes sont équivalentes :
Goto(2,1)&Wait(200) ó Wait(200)&Goto(2,1)
Cette instruction attend 2s avant d’aller exécuter la 1ere instruction ligne 2
La première syntaxe utilisant un lieu est bien plus pratique, surtout si vous devez supprimer ou ajouter des enregistrements.
Exemple: Aller à la deuxième occurrence du lieu :MY_LOCATION:
Goto(:MY_LOCATION,2)
Voir la vidéo 'How to add a loop in a WinParrot macro' sur ou charger la vidéo AVI .
Description:
Fonction qui exécute une instruction
parmi deux en fonction d’un test logique.
Syntaxe: If(<Inst 1>,<Inst 2>,<Inst 3>)
Arguments:
<Inst 1> : Instruction qui doit retourner un entier.
<Inst 2> : Instruction à exécuter si le résultat de
l’instruction 1 est différent de zéro.
<Inst 3> : Instruction à exécuter si le résultat de
l’instruction 1 est égal à zéro.
Chaine de retour:
Chaine issue de l’exécution de
l’instruction 2 si le résultat de
l’instruction 1 est différent de zéro sinon chaine issue de l’exécution
de l’instruction 3.
Remarque: L’exécution de l’instruction en cours n’est pas interrompue par cette fonction.
Exemples:
Retour à la ligne 5, instruction 2 si $I<5, sinon on continue :
If($I<5,GoTo(5,2),)
Retour à la ligne 5, instruction 2 si $I<5, sinon on demande s’il faut continuer :
If($I<5,GoTo(5,2),Ask("Voulez vous continuer?","Oui","","Non",Stop()))
Coller si le contenu du press
papier n’est pas vide :
If(GetClipboard()=="",Stop(),"\[CTRL]v/[CTRL] ")
Description:
Fonction qui exécute une instruction parmi deux. La 1ère instruction est exécutée si l’image demandée a été trouvée pendant le temps maximum accordé.
IfImage peut avoir trois fonctions :
· Attendre que l’application pilotée soit prête à recevoir de nouvelles saisies.
· Contrôler que l’application pilotée a bien reçu les commandes précédentes (Possible uniquement si celle-ci affiche des messages de confirmation).
·
Trouver un repère (une image, un bouton, un texte)
pour cliquer par rapport à celui-ci
Cette fonction recherche une
image exacte en forme et en couleur, pour une recherche de forme sans tenir
compte des couleurs utilisez plutôt la fonction IfShape
WinParrot va rechercher l'image dans l'application cible (d'après le titre de la fenêtre spécifié dans la 3ème colonne 'Titre').
Nouveau depuis la version 2.1.0 : Si le premier caractère du 'Titre' est le caractère '-' WinParrot va chercher dans tout l'écran (Vous éviterez ainsi d'avoir le message 'Application cible non disponible… ').
Syntaxe: IfImage(<Entier 1>,<Inst 1>,<Inst 2>)
Arguments:
<Entier 1> : Temps maximum accordé pour trouver l’image
en secondes.
<Inst 1> : Instruction à exécuter si l’image a été trouvée
pendant le temps accordé.
<Inst 2> : Instruction à exécuter si l’image n’a pas
été trouvée pendant le temps accordé.
Chaine de retour:
Chaîne issue de l’exécution de
l’instruction 1 si l’image a été trouvée sinon chaine issue de l’exécution de
l’instruction 2.
Remarque: L’exécution de l’instruction en cours est interrompue par cette fonction pendant le temps maximum défini par le 1er paramètre. Si l’image est trouvée avant le temps accordé la lecture reprend aussitôt.
Dès que vous saisissez le nom de cette fonction dans un enregistrement WinParrot ajoute automatiquement une zone de recherche d’image (rectangle rouge), vous pouvez alors déplacer ou redimensionner celle-ci.
Veillez à :
· Ne pas trop agrandir la zone recherchée, cela aurait pour conséquence ralentir la recherche.
·
Ne pas sélectionner une zone contenant le
curseur clignotant ou tous autres objets intrus, la fonction ne saurait retrouver
l’image sans cet intrus.
Vous pouvez interrompre à tout moment la recherche avec la touche V[END] (Touche définie par défaut [Fin], l’exécution de l’instruction en cours se poursuit (avec l’exécution de l’instruction <Inst 2>), son résultat est envoyé a l’application cible puis WinParrot arrête la lecture).
Si vous changez d’application pendant le temps de recherche WinParrot ne suspend pas la recherche mais il ne peut trouvez l’image que si l’application cible est active et en premier plan.
Exemples:
· Recherche de texte pendant un temps maximum de 5s et arrêt si échec :
IfImage(5,"",Stop())
· Recherche d’un bouton pendant un temps maximum de 5s, clique relatif à celui-ci si l’image a été trouvé et arrêt sinon.
IfImage(5,"V[LBUTTON]",Stop())
(Le trait en pointillé montre que le clique est relatif à l’image trouvée. Pour cliquer en position absolue et non relatif à l’image "V[LBUTTON]" doit être à l’extérieur de la fonction : IfImage(5, ,Stop()); "V[LBUTTON]")
Pendant la recherche, si te temps accordé est supérieur à 1s, WinParrot affiche en titre [Temps écoulé/Temps maximum] ex ‘IfImage 2/5’
Si le bouton change d’aspect lorsque vous déplacez la souris au dessus vous devez utiliser la fonction IfShape ou/et combiner celle-ci avec des pourcentages de tolérance (à l’aide des fonctions SetPixelTol et SetColorTol).
Voir
la vidéo 'How to use
the IfImage function in a WinParrot macro' sur ou charger la vidéo .
Description:
Fonction qui attend un temps
spécifié un processus et exécute une instruction parmi deux.
Syntaxe:
IfProcess(<Inst 1 nom du processus >,<<Inst 2 temps d'attente>,<Inst 3>, <Inst_4>)
Arguments:
<Inst 1> : Instruction qui doit retourner une chaine
texte contenant le nom du processus à attendre.
<Inst 2> : Instruction qui doit retourner un entier,
c'est le temps maximum en secondes d'attente du processus.
<Inst 3> : Instruction à exécuter si le processus est
apparu dans le temps imparti.
<Inst 4> : Instruction à exécuter si le processus n'est
pas apparu dans le temps imparti.
Chaine de retour:
Chaine issue de l’exécution de
l’instruction 3 si le processus est
apparu dans le temps imparti sinon chaine issue de l’exécution de
l’instruction 4.
Remarque: L’exécution de l’instruction en cours est suspendue par cette fonction.
En cas d'interruption de la lecture l’instruction 4 est exécutée et le résultat est envoyé à l'application cible. Vous pouvez trouver le nom d'un processus avec le gestionnaire des tâches Windows.
Exemples:
Retour à la ligne 5, instruction 2 si le processus 'notepad' est apparu dans un temps maximum de 5s., sinon on continue :
IfProcess("notepad",5,GoTo(5,2),)
Retour à la ligne 5, instruction 2 si $I<5, sinon on demande s’il faut continuer :
IfProcess("notepad",5,GoTo(5,2),Ask("Voulez vous continuer?","Oui","","Non",Stop()))
Description:
Cette fonction est identique à la fonction IfImage. L’unique différence est sur le moteur de recherche qui ne tient pas compte des couleurs, ainsi les 3 images ‘Test’ suivantes seront acceptées :
Syntaxe: IfShape
(<Entier
1>,<Inst 1>,<Inst 2>)
Arguments:
<Entier 1> : Temps maximum accordé pour trouver la forme
en secondes.
<Inst 1> : Instruction à exécuter si la forme a été
trouvée pendant le temps accordé.
<Inst 2> : Instruction à exécuter si la forme n’a pas
été trouvée pendant le temps accordé.
Chaine de retour:
Chaine issue de l’exécution de
l’instruction 1 si la forme a
été trouvée sinon chaine issue de l’exécution de l’instruction 2.
Remarque: Utilisez la fonction IfImage pour une reconnaissance exacte d’une image.
Vous pouvez interrompre à tout moment la recherche avec la touche V[END] (Touche définie par défaut [Fin], l’exécution de l’instruction en cours se poursuit (avec l’exécution de l’instruction <Inst 2>), son résultat est envoyé a l’application cible puis WinParrot arrête la lecture).
Exemples:
· Recherche d’une forme pendant un temps maximum de 5s, clique relatif à celle-ci si l’image a été trouvé et arrêt sinon.
IfShape(5,"V[LBUTTON]",Stop())
Pendant la recherche, si te temps accordé est supérieur à 1s, WinParrot affiche en titre [Temps écoulé/Temps maximum] ex ‘IfShape 2/5’.
Voir
la vidéo 'How to use
the IfImage function in a WinParrot macro' sur ou charger la vidéo .
Description:
Fonction qui attend un temps
spécifié une fenêtre Windows et exécute une instruction parmi deux.
Syntaxe:
IfWindow(<Inst 1 Titre de la fenêtre >,<<Inst 2 temps d'attente>, <Inst_3>,<Inst 4>)
Arguments:
<Inst 1> : Instruction qui doit retourner une chaine
texte contenant le titre de la fenêtre à attendre. Pour rechercher une fenêtre
avec un titre partiel vous pouvez utiliser les jokers '*' et '?'.
<Inst 2> : Instruction qui doit retourner un entier,
c'est le temps maximum en secondes d'attente de la fenêtre.
<Inst 3> : Instruction à exécuter si la fenêtre est
apparue dans le temps imparti.
<Inst 4> : Instruction à exécuter si la fenêtre n'est
pas apparue dans le temps imparti.
Chaine de retour:
Chaine issue de l’exécution de
l’instruction 3 si la fenêtre est
apparue dans le temps imparti sinon chaine issue de l’exécution de
l’instruction 4.
Remarque: L’exécution de l’instruction en cours est suspendue par cette fonction.
En cas d'interruption de la
lecture l’instruction 4 est exécutée et le résultat est envoyé à l'application
cible. Le titre d'une fenêtre
Windows est le texte dans la barre horizontale en haut de celle-ci.
Exemples:
Retour à la ligne 5, instruction 2 si la fenêtre 'Calculatrice' est apparu dans un temps maximum de 5s., sinon on continue :
SystemCmd("calc&"); IfWindow("Calculat*", 5,GoTo(5,2),)
Retour à la ligne 5, instruction 2 si $I<5, sinon on demande s’il faut continuer :
SystemCmd("calc&"); IfWindow("Calculat*", 5,GoTo(5,2),Ask("Voulez vous continuer?","Oui","","Non",Stop()))
Description
Fonction qui retourne la valeur entière d’un réel.
Syntaxe Int(<Instruction>)
Arguments
<Instruction>: Instruction qui doit retourner un réel.
Chaîne de retour
Un entier.
Examples
Int(30.10) enverra ‘30’ à l’application cible.
MsgBox("Int(-10.15*2)="&ToChar("%0.3f",Int(-10.15*2))) ouvre une fenêtre avec ‘Int(-10.15*2)=-20’.
Description:
Fonction qui retourne le maximum de deux réels.
Syntaxe: Max(<Inst 1>, <Inst
2>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner un réel.
<Inst 2> : Instruction exécutée qui doit retourner un réel.
Chaine de retour: Le
réel résultant de l’instruction <Inst
1> si celui-ci est plus grand que le réel résultant
de l’instruction <Inst
2> , sinon le réel résultant de l’instruction <Inst 2>.
Exemples:
Max(1, 10) ó
10
$STR=-30.5; Max($STR, 10.30) ó
10.3
Description:
Fonction qui retourne le minimum de deux réels.
Syntaxe: Min(<Inst 1>, <Inst
2>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner un réel.
<Inst 2> : Instruction exécutée qui doit retourner un
réel.
Chaine de retour: Le
réel résultant de l’instruction <Inst
1> si celui-ci est plus petit que le réel
résultant de l’instruction <Inst
2> , sinon le réel résultant de l’instruction <Inst 2>.
Exemples:
Min(1, 10) ó
1
$STR=-30.50; Min($STR, 10.30) ó
-30.5
Description:
Fonction qui affiche un message à
l’utilisateur dans une fenêtre.
Syntaxe: MsgBox(<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le message à afficher dans la fenêtre.
Chaine de retour: Aucune
Remarque: L’exécution de l’instruction en cours est
interrompue par cette fonction et reprend dès que l’utilisateur clique sur le
bouton ‘OK’.
Exemples: $I="Test"; MsgBox($I&" Cliquer pour
continuer.");
Description:
Fonction qui envoie un message sous forme de ‘popup’ à un poste ou à un compte Windows donné.
Syntaxe: NetSend(<Inst 1>,<Inst 2>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le message à envoyer.
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le nom de l’ordinateur distant ou le nom du compte
Windows.
Chaine de retour:
Aucune .
Remarque: Cette fonction est certifiée uniquement sur Windows XP (Les version supérieures de Windows n’incluent plus le service de messagerie )
Exemples:
Envoyer le message "Please help!" au PC "PC007":
NetSend ("Please help!","PC007");
Envoyer le message "Please help!" à tous les PCs ou M. BEAN est connecté.
NetSend ("Please help!","BEAN");
Description:
Fonction qui retourne plusieurs fois une chaine de texte.
Syntaxe: Repeat(<Inst 1>, <Inst
2>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte.
<Inst 2> : Instruction exécutée qui doit retourner un
entier.
Chaine de retour: <Inst 2> fois la chaine <Inst 1>
Remarque: Cette fonction est pratique pour par exemple
sélectionner la nième valeur d’une liste de valeurs avec la touche "V[DOWN]".
Exemples:
Repeat("V[DOWN]", 0) ó ""
$NB=4 ; Repeat("V[DOWN]", $NB) ó "V[DOWN]V[DOWN]V[DOWN]V[DOWN]"
Description:
Fonction qui remplace dans une chaine texte, un texte par un autre.
Syntaxe: Replace(<Inst 1>, <Inst 2>,
<Inst 3>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le texte a transformer.
<Inst 2> : Instruction exécutée qui doit retourner une
chaine texte contenant l’ancien text.
<Inst 3> : Instruction exécutée qui doit retourner une
chaine texte contenant le nouveau texte.
.
Chaine de retour: Le
contenu de <Inst 1> ou les occurrences de la chaine <Inst 2> a
été remplacée par la chaine <Inst 3>.
Remarque: Cette fonction
tient compte de la case.
Exemples:
Replace("ABCDE",
"BC","xy") ó
"AxyDE"
$STR="ABCDE" ; Replace($STR, "BC","xy") ó
"AxyDE"
Description:
Fonction qui initialise à zéro le chrono. Cette fonction est a appeler avant la fonction GetChrono(). Elle donne le temps écoulé entre l’appel de ces deux fonctions.
Syntaxe: ResetChrono()
Arguments:
Aucun.
Chaine de retour:
Aucune.
Remarque: Cette fonction est automatiquement appelée lors du lancement de la lecture.
Exemples:
ResetChrono() ;
Wait(1300) ; GetChrono() ó
"00:00:01.300"
ResetChrono() ;
Wait(1300) ; GetChrono("%S%MS") ó "01300"
Description:
Fonction qui complète une chaine par des occurrences d’une autre chaine afin quelle ait une longueur spécifiée.
Syntaxe: Rpad(<Inst 1>,
<Inst 2>, <Inst 3>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le texte a transformer.
<Inst 2> : Instruction exécutée qui doit retourner une
chaine texte contenant l’occurrence à ajouter.
<Inst 3> : Instruction exécutée qui doit retourner un
entier. Cela représente la longueur de la chaine transformée
Chaine de retour: Le
contenu de <Inst 1> complété par les autant d’ocurence qu’il faut de la chaine <Inst 2> pour que la chaine résultante ai la longueur spécifiée par le
paramètre <Inst 3>.
Remarque: Si la chaine a transformer est dèja de longueur
supérieure à la longueur spécifiée par le paramètre <Inst 3> celle-ci
est coupée à la longueur demandée.
Exemples:
Rpad("ABCDE",
" ", 10) ó
"ABCDE
"
$STR="ABCDE" ; Rpad($STR, " ", 10) ó "ABCDE "
Description:
Fonction qui supprime une occurrence d’une chaine dans une autre chaine uniquement si celle-ci est à la fin.
Syntaxe: Rtrim(<Inst 1>, <Inst 2>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le texte a transformer.
<Inst 2> : Instruction exécutée qui doit retourner une
chaine texte contenant l’occurrence à supprimer.
Chaine de retour: Le
contenu de <Inst 1> ou toutes les occurrences de la chaine <Inst 2> ont
été supprimées si celle-ci sont à la fin.
Remarque: Cette fonction
tien compte de la case.
Exemples:
Rtrim("ABCDE ", " ") ó
"ABCDE"
$STR="ABCDE " ; Rtrim($STR, " ") ó "ABCDE"
Description:
Fonction qui utilise la carte son
de l’ordinateur pour lire un texte.
Syntaxe: Say(<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le texte à lire (actuellement uniquement Hello, Help et
Ok sont implémentés).
Chaine de retour: Aucune
Remarque: L’exécution de l’instruction en cours est
interrompue pendant le temps de la lecture.
Exemples: Say("Hello");
Say("Help");
Say("Ok");
Description:
Fonction qui change le texte du presse-papier.
Syntaxe: SetClipboard(<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le texte à copier dans le presse-papier.
Chaine de retour: Aucune
Remarque: Pour obtenir le contenu du presse-papier utilisez la fonction GetClipboard.
Exemple:
Copier le contenu de la variable
$PP dans le presse-papier : SetClipboard($PP)
Description:
Fonction qui change la tolérance des fonctions de recherche IfImage() et IfShape() uniquement par rapport aux couleurs.
Syntaxe: SetColorTol (<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner un
entier compris entre 0 et 100.
La valeur ‘0’ indique aux fonctions de recherche qu’il n’y a aucune tolérance
pour les couleurs, un point gris même très clair (invisible à l’œil) ne sera
pas confondu avec un point blanc.
Chaîne de retour : Aucune
Remarque: Pour une tolérance sur un pourcentage de pixels ne correspondant pas utilisez plutôt/aussi la fonction SetPixelTol().
Exemple:
SetColorTol(20)& SetPixelTol(20)&IfShape(5,"V[LBUTTON]",Stop())
Pour que le changements de tolérances soit pris en compte par la fonction de recherche il faut que les fonctions SetColorTol() et SetPixelTol() soient placées avant la fonction de recherche. Il est recommandé que les fonctions SetColorTol() ou/et SetPixelTol soient ajoutées avec l’operateur ‘&’ comme ci-dessus, ainsi lors de la lecture si WinParrot s’arrête sur cette instruction (grâce à la fonction Stop(), en cas d’échec) vous pourrez augmenter les tolérances et relancer la lecture à partir de cette instruction.
Description:
Fonction qui fixe la touche d’arrêt de lecture.
Syntaxe: SetEndKey(<Inst
1>)
Arguments:
<Inst 1> : Instruction qui doit retourner une chaine
contenant uniquement la nouvelle touche d’arrêt de lecture. Vous pouvez
utiliser n’importe quelle touche connue (Voir la liste des touches connues au
chapitre ‘Les événements’).
Chaine de retour: Aucune
Remarque: La touche d’arrêt par défaut est la touche fin V[END]. Si vous arrêtez la lecture (avec la touche d’arrêt) et si vous relancez la lecture, vous devez vous rappeler quelle est la nouvelle touche d’arrêt.
Si vous spécifiez une touche inconnue, la touche d’arrêt de lecture sera la touche d’arrêt par défaut (la touche fin V[END]).
Exemples:
Fixer la touche F12 comme touche d’arrêt de lecture:
SetEndKey("V[F12]")
Fixer la touche espace comme touche d’arrêt de lecture:
SetEndKey("V[ESC]")
Description:
Fonction qui change de mode d’envoie des caractères à l’application cible.
Syntaxe: SetKeyMode(<Inst 1>)
Argument:
<Inst 1> : Instruction exécutée qui doit retourner un
entier. La valeur par défaut est 0.
Si <Inst 1> = 0 le mode d’envoie des données est caractère par caractère.
La chaine ‘Texte1V[RETURN]Texte2’ sera envoyé sous la forme :
T,e,x,t,e,1,V[RETURN],T,e,x,t,e, puis 2 (soit 12 envoies)
Avantage:
Fonctionne toujours (même si l’application cible n’a pas accès au contenu du presse papier)
Si <Inst 1> = 1 le mode d’envoie des données est par bloc de caractères.
La chaine ‘Texte1V[RETURN]Texte2’ sera envoyé sous la forme :
Texte1, V[RETURN], puis Texte2 (soit 3 envoies)
Avantage:
Ultrarapide (surtout s’il faut envoyer des textes longs).
Chaine de retour: Aucune
Remarque: Si cette fonction est appelée plusieurs fois dans
une même instruction seule la dernière exécution est pris en compte.
Exemples: SetKeyMode(1)
SetKeyMode(0)
Description:
Fonction qui change la vitesse de frappe clavier lors de la lecture.
Syntaxe: SetKeySpeed (<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner un
entier compris entre 0 et 100.
La valeur 100 change la vitesse de frappe au plus rapide possible. La
valeur 0 rend la vitesse de frappe extrêmement lente (pour une démonstration).
Si cette fonction n’est pas appelée lors de la lecture, c’est la valeur par
défaut qui est utilisée (valeur spécifiée dans les options de lecture, non
disponible actuellement).
Chaine de retour: Aucune
Remarque: Pour contrôler la vitesse de déplacement du pointeur de la souris utilisez la fonction SetMouseSpeed (). Si la valeur spécifiée est proche de 0 et si vous avez réalisé une boucle, il est recommandé d’insérer dans cette boucle un/des contrôle(s) avec les fonctions de recherche IfImage(), IfShape() afin de s’assurer que l’application cible suive bien et qu’elle accuse réception des saisies.
Exemples:
SetMouseSpeed(20)& SetKeySpeed(20)&IfShape(5,"testV[LBUTTON]",Stop())
Description:
Fonction qui change la vitesse de déplacement du pointeur de la souris lors de la lecture.
Syntaxe: SetMouseSpeed (<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner un
entier compris entre 0 et 100.
La valeur 100 change la vitesse de déplacement du pointeur de la souris
au plus rapide possible. La valeur 0 rend le déplacement du pointeur
extrêmement lent (pour une démonstration). Si cette fonction n’est pas appelée
lors de la lecture, c’est la valeur par défaut qui est utilisée (valeur
spécifiée dans les options de lecture, non disponible actuellement).
Chaine de retour: Aucune
Remarque: Pour contrôler la vitesse de frappe clavier utilisez la fonction SetKeySpeed (). Si la valeur spécifiée est proche de 0 et si vous avez réalisé une boucle, il est recommandé d’insérer dans cette boucle un/des contrôle(s) avec les fonctions de recherche IfImage(), IfShape() afin de s’assurer que l’application cible suive bien et qu’elle accuse réception des saisies.
Exemples:
SetMouseSpeed(20)& SetKeySpeed(20)&IfShape(5,"testV[LBUTTON]",Stop())
Description:
Fonction qui change la tolérance des fonctions de recherche IfImage() et IfShape() uniquement pour un pourcentage de pixels.
Syntaxe: SetPixelTol (<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner un
entier compris entre 0 et 50.
La valeur 0 indique aux fonctions de recherche qu’il n’y a aucune
tolérance pour les pixels, un point (pixel) différent (peu visible à l’œil)
suffit pour que les fonctions de recherche considèrent que les images/formes
sont différentes.
Chaine de retour: Aucune
Remarque: Pour une tolérance sur les couleurs utilisez plutôt/aussi la fonction SetColorTol().
Exemples:
SetColorTol(20)& SetPixTol(20)&IfShape(5,"V[LBUTTON]",Stop())
Pour que le changements de tolérances soit pris en compte par la fonction de recherche il faut que les fonctions SetColorTol() ou/et SetPixelTol() soient placées avant la fonction de recherche. Il est recommandé que les fonctions SetColorTol() et SetPixelTol soient ajoutées avec l’operateur ‘&’ comme ci-dessus, ainsi lors de la lecture si WinParrot s’arrête sur cette instruction (grâce à la fonction Stop(), en cas d’échec) vous pourrez augmenter les tolérances et relancer la lecture à partir de cette instruction.
Description:
Fonction qui affiche un message
dans le titre de l’application WinParrot. Ainsi dans une boucle vous pouvez
utiliser cette fonction pour suivre en temps réel où en est WinParrot en cours
de lecture tout en minimisant cette application (Titre visible depuis la barre
des tâches Windows)
Syntaxe: SetTitle(<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le message à afficher en titre de WinParrot.
Chaine de retour: Aucune
Remarque: L’exécution de l’instruction en cours n’est pas
interrompue par cette fonction.
Exemples: SetTitle("i="&$I&"/"&$TOTAL);
Description:
Fonction qui initialise ou change le contenu d’une variable.
Syntaxe: SetVar($MA_VARIABLE ,<Inst 1>)
Arguments:
$MY_VARIABLE : Nom de la variable.
<Inst 1> : Instruction qui retourne la valeur à affecter
à la variable.
Chaine de retour: Aucune
Remarque: Pour initialiser ou changer le contenu d’une variable vous pouvez aussi utiliser l’opérateur ‘=’.
Exemple:
Initialiser la variable $PP avec la valeur 100:
SetVar($PP, 100)
Beeper et copier le contenu du presse-papier dans la variable $PP:
Beep(3000,100)&SetVar($PP, GetClipboard())
Description
Fonction qui retourne le signe d’un entier ou d’un réel.
Syntaxe Sgn(<Instruction>)
Arguments
<Instruction>: Instruction qui doit retourner un entier ou
un réel.
Chaîne de retour
L’entier -1 si l’argument est inferieur à zéro.
L’entier 0 si l’argument est égal à zéro.
L’entier 1 si l’argument est supérieur à zéro.
Examples
Sgn(123) enverra ‘1’ à l’application cible.
MsgBox(Sgn(-123)) ouvre une fenêtre avec ‘-1’.
Description:
Fonction qui stop la lecture après avoir finalisé l’exécution de l’instruction en cours et avoir envoyé à l’application cible le texte issue de celle-ci.
Syntaxe:
Stop()
Arguments: Aucun
Chaine de retour: Aucune
Remarque:
Lorsque vous relancez la lecture WinParrot vous proposera de reprendre la lecture de l’instruction contenant ce ‘Stop’, la suivante ou depuis le début (en réinitialisant toutes les variables du document).
Exemples: Stop()
Description:
Fonction qui donne la longueur d’une chaine.
Syntaxe: StrLen (<Inst 1>)
Arguments:
<Inst 1>: Instruction exécutée qui doit retourner une
chaine texte.
Chaine de retour: Un entier correspondant à la longueur de la chaine texte résultant de l’exécution de l’instruction <Inst 1>.
.
Exemples:
StrLen ("ABCDE") ó 5
$STR="ABCDE"; StrLen ($STR&"Z") ó 6
Description:
Fonction qui recherche une chaine dans une autre chaine.
Syntaxe: StrStr(<Inst 1>, <Inst 2>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte.
<Inst 2> : Instruction exécutée qui doit retourner une
chaine texte contenant l’occurrence à rechercher.
Chaine de retour: Si la chaine texte résultant de l’exécution de l’instruction
<Inst 2> a été trouvée dans la chaine texte résultant de l’exécution de l’instruction <Inst 1> la fonction StrStr() retourne le numéro du caractère ou celui-ci a été trouvé.
Remarque: Si la chaine texte n’est pas trouvée la fonction renvoie ‘0’.
.
Exemples:
StrStr("ABCDE",
"BC") ó 2
$STR="ABCDE" ; StrStr($STR, "Z") ó 0
Description:
Fonction qui exécute une commande système.
Syntaxe: SystemCmd(<Inst 1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant la ligne de commande à exécuter. Si celle-ci se termine
par le caractère ‘&’ l’exécution sera asynchrone.
Chaine de retour: Aucune.
Remarques: Si le caractère ‘&’ est ajouté à la fin de la ligne de commande WinParrot n’attend pas la fin de l’exécution de la ligne de commande pour poursuivre la fin de l’exécution de l’instruction en cours.
Pour ouvrir un fichier utilisez la fonction SystemOpen() (Windows se chargera en fonction de l’extension d’utiliser le programme associé).
.
Exemples:
-Pour supprimer un fichier et suspendre la lecture pendant le temps de la suppression (caractère ‘&’ non ajouté):
SystemCmd("cmd /C rm
c:\test.txt")
Notez que pour exécuter une commande DOS vous devez préfixer celle-ci par "cmd /C ". (voir sous DOS ‘cmd /?‘ pour plus d’information sur les options)
-Pour ouvrir un site Web en spécifiant
qu’il faut utiliser Internet Explorer et
ne pas suspendre la lecture (caractère ‘&’ ajouté):
$STR="iexplore " ;
SystemCmd($STR&" http://www.winparrot.com&")
Description:
Fonction qui demande à Windows d’ouvrir un fichier ou un lien avec le programme associé.
Syntaxe: SystemOpen(<Inst
1>)
Arguments:
<Inst 1> : Instruction exécutée qui doit retourner une
chaine texte contenant le fichier ou le lien a ouvrir.
Chaine de retour: Aucune
Remarque: Cette fonction n’interrompt pas la lecture en cours.
.
Exemples:
Pour ouvrir un fichier test.txt :
SystemOpen("c:\test.txt")
Pour ouvrir un site Web avec le
navigateur par défaut:
$STR=" http://www.winparrot.com " ; SystemOpen($STR)
Description
Fonction qui formate dans une chaine un entier, un réel ou une chaine selon un format spécifié.
Le format est identique au format de la fonction du langage C fprintf.
(veuillez voir le format de la fonction
fprintf pour plus d’information)
Syntaxe ToChar((<Inst 1 = format>,<Inst 2 =
value>)
Arguments
<Inst 1>: Instruction qui doit retourner une chaine
contenant le format.
<Inst 2>: Instruction qui doit contenir l’entier, le réel
ou la chaine à formater.
Chaine de retour:
Une chaine contenant la valeur formatée.
Example:
ToChar("%.2f",1.2) enverra la chaine ‘1.20’ à l’application cible.
Note : Ci-dessous, les formats les plus utilisés. Le caractère X représente le caractère espace (‘d’,’f’ pour les entiers et réels, ‘s’ pour les chaines).
Valeur |
Format |
Résultat |
Commentaire |
12 |
%-5d |
12XXX |
Compléter à droite par des espaces. |
12 |
%5d |
XXX12 |
Compléter à gauche par des espaces. |
12.4 |
%-5d |
12XXX |
Valeur entière et compléter à droite par des espaces. |
12.4 |
%5d |
XXX12 |
Valeur entière et compléter à gauche par des espaces. |
123456 |
%5d |
123456 |
- |
12 |
%05d |
00012 |
Compléter à gauche par des zéros. |
123456 |
%05d |
123456 |
- |
12.345 |
%.2f |
12.35 |
Afficher uniquement 2 décimales |
12 |
%8.2f |
XXX12.00 |
8 caractères, Afficher uniquement 2 décimales |
12 |
%08.2f |
00012.00 |
8 caractères, Afficher uniquement 2 décimales, compléter
avec zéro |
12.345 |
%-8.2f |
12.35XXX |
8 caractères, Afficher uniquement 2 décimales, compléter à
droite par des espaces. |
12.345 |
%s |
12.345 |
Chaine simple |
12.345 |
%8s |
XX12.345 |
Compléter à gauche par des espaces. |
12.345 |
%-8s |
12.345XX |
Compléter à droite par des espaces. |
Description:
Fonction qui active ou désactive le mode trace.
Pour plus d’information voir le chapitre ‘Tracer vos macros’.
Syntaxe: Trace(<Inst 1>,<Inst 2>,<Inst 3>)
Arguments:
<Inst 1> : Instruction qui doit retourner un entier
compris entre 0 et 2.
La valeur 0 désactive le
mode trace.
La valeur 2 est le niveau de trace maximale.
<Inst 2> : Instruction qui doit retourner une chaine
contenant le format
des traces (colonnes à afficher).
<Inst 3> : Instruction qui doit retourner une chaine
contenant le nom du fichier trace.
L’extension de ce
fichier donne aussi le type de trace (.csv, .xls ou .html)
Chaine de retour:
Aucune.
Remarque: L’exécution de l’instruction en cours n’est pas interrompue par cette fonction.
Les paramètres par défaut sont :
<Inst 1> : 0 (désactive le mode trace).
<Inst 2> : $TFORMAT Ce format par défaut
contient les colonnes suivantes :
"LNUM.INUM;INSTRUCTION;DESC1;DESC2;OUTPUT;ISELECTED;IFOUND"
où :
LNUM est le numéro de la ligne executée.
INUM est le numéro dans la ligne de
l’instruction exécutée.
INSTRUCTION est l’instruction exécutée.
DESC1;DESC2 sont les descriptions de l’exécution de
l’instruction.
OUTPUT est la chaine résultant de l’exécution de
l’instruction. C’est la chaine qui sera envoyée à l’application cible.
ISELECTED est l’image sélectionnée à rechercher ou/et
l’image centrée sur un point sur lequel il faut cliquer.
IFOUND est l’image trouvée ou/et l’image centrée
sur le point sur lequel il faut cliquer.
<Inst 3> : Si le chemin complet du fichier trace n’est
pas spécifié le dossier sera
celui ou le fichier wpr se trouve.
Si le nom du fichier trace n’est pas
spécifié le nom du fichier trace sera
le même que celui du fichier.
Si l’extension du fichier trace n’est pas
spécifié celui-ci sera ‘.html’
Vous pouvez ajouter des colonnes supplémentaires au format par défaut en
concaténant à celui-ci des noms de variable (à l’intérieur d’une chaine).
<Inst
2> = "$DATE;$TIME;”&$TFORMAT&”;$MY_VARIABLE"
Exemples:
-Activer la trace niveau=2, format par défaut et nom de fichier TraceTmpHHMMSS.html:
$TIME="HHMMSS"; Trace(2,,"TraceTmp"&$TIME&"")
-Désactiver le mode trace: Trace(,,)
-Activer la trace niveau=1, ajouter les colonnes date et heure (HHMMSS) et nom de fichier =TraceTmp.xls:
$TIME="HHMMSS";
Trace(1, "$DATE;$TIME;”&$TFORMAT&”;$MY_VARIABLE","TraceTmp.xls")
Attention :
$TIME="HHMMSS";
Trace(1, "$DATE;”&$TIME&”;”&$TFORMAT&”;”&$MY_VARIABLE,"TraceTmp.xls")
Ne donnerait pas le résultat attendu car $TIME et $MY_VARIABLE seraient constants dans la trace.
Voir la vidéo 'How to use the Debug & Trace functions' sur ou charger la vidéo AVI .
Description
Fonction qui active ou désactive le mode de sauvegarde automatique lors de l’écriture dans un fichier Excel.
Syntaxe XlsAutoSave(<Instruction>)
Arguments
<Instruction>: Instruction qui doit retourner un nombre entier
N.
Si N = 0 le mode de sauvegarde automatique est désactivé et activé dans
tous les autres cas.
Chaine de retour:
Aucune.
Remarque : Utilisez cette fonction si vous voulez que
votre classeur Excel soit sauvegardé à chaque fois que vous appelez la fonction
XlsWriteData().
Examples
XlsAutoSave(1) : Active le mode de sauvegarde automatique.
XlsAutoSave(0) : Désactive le mode de sauvegarde automatique
Description:
Fonction qui ferme un classeur Excel spécifié.
Syntaxe: XlsClose (<Inst 1>)
Arguments:
<Inst 1> : Instruction qui doit retourner le nom du
fichier Excel. Si le nom du fichier ne contient pas le chemin complet de
celui-ci alors WinParrrot recherche le fichier XLS à partir du répertoire du
fichier WPR.
Chaine de retour:
Aucune.
Remarque: Cette fonction devrait être utilisée uniquement à la fin des macro WinParrot (Il est déconseillé d’ouvrir et de fermer des classeurs Excel dans des boucle).
Exemple:
· Ecrire « Ok » dans la cellule B1 de la première feuille du classeur x1.xls, puis sauvegarder et fermer le classeur:
$I=1; $F="c:\x1.xls"; XlsWriteData($F,1,"B"&$I,"Ok");
XlsSave($F) ; Xlsclose($F)
Description:
Fonction qui lit le contenu d’une cellule d’une feuille Excel.
Cette fonction ouvre le fichier Excel si celui-ci n’est pas déjà ouvert.
Syntaxe: XlsReadData(<Inst 1>,<Inst 2>,<Inst 3>)
Arguments:
<Inst 1> : Instruction qui doit retourner le nom du
fichier Excel. Si le nom du fichier ne contient pas le chemin complet de
celui-ci alors WinParrrot recherche le fichier XLS à partir du répertoire du
fichier WPR.
<Inst 2> : Instruction qui doit retourner le numéro de
la feuille.
<Inst 3> : Instruction qui doit retourner l’identifiant
de la cellule à lire
sous forme <Lettre colonne><Numéro de ligne>.
Chaine de retour:
Chaîne texte contenant la valeur de la cellule.
Remarque: Si la cellule contient une formule celle-ci est évaluée par Excel puis le résultat est transmis à WinParrot.
Exemples:
· Lecture de la cellule A1 de la première feuille du classeur x1.xls et envoie du résultat à l’application cible:
$I=1; $F="c:\x1.xls";
XlsReadData($F,1,"A"&$I)
· Test de l’existence d’une valeur dans la cellule Z2 de la première feuille du classeur x1.xls et arrêt de lecture si vide:
$F="c:\x1.xls"; $TESTI=XlsReadData($F,1,"Z2");
If($TEST=="", Stop(),)
Voir
la vidéo 'How to use
the Excel functions in a WinParrot macro' sur ou charger la vidéo .
Description:
Fonction qui sauvegarde un classeur Excel spécifié.
Syntaxe: XlsSave(<Inst 1>)
Arguments:
<Inst 1> : Instruction qui doit retourner le nom du
fichier Excel. Si le nom du fichier ne contient pas le chemin complet de
celui-ci alors WinParrrot recherche le fichier XLS à partir du répertoire du
fichier WPR.
Chaine de retour:
Aucune.
Remarque: Cette fonction devrait être utilisée juste après la fonction XlsWriteData().
Exemple:
· Ecriture de « Ok » dans la cellule B1 de la première feuille du classeur x1.xls, puis sauvegarde du classeur:
$I=1; $F="c:\x1.xls"; XlsWriteData($F,1,"B"&$I,"Ok"); XlsSave($F)
Description:
Fonction qui change le contenu d’une cellule d’une feuille Excel par une valeur spécifiée. Cette fonction ouvre le fichier Excel si celui-ci n’est pas déjà ouvert.
Syntaxe: XlsWriteData(<Inst 1>,<Inst 2>,<Inst 3>,<Inst 4>)
Arguments:
<Inst 1> : Instruction qui doit retourner le nom du
fichier Excel. Si le nom du fichier ne contient pas le chemin complet de
celui-ci alors WinParrrot recherche le fichier XLS à partir du répertoire du
fichier WPR.
<Inst 2> : Instruction qui doit retourner le numéro de
la feuille.
<Inst 3> : Instruction qui doit retourner l’identifiant
de la cellule à lire
sous forme <Lettre colonne><Numéro de ligne>.
<Inst 4> : Instruction qui doit retourner la valeur à
affecter à la cellule.
Chaine de retour:
Aucune.
Remarque: Cette fonction peut être utilisée lors de boucles pour marquer les lignes traitées.
Exemple:
· Ecriture de « Ok » dans la cellule B1 de la première feuille du classeur x1.xls:
$I=1; $F="c:\x1.xls"; XlsWriteData($F,1,"B"&$I,"Ok")
Voir
la vidéo 'How to use
the Excel functions in a WinParrot macro' sur ou charger la vidéo .
Description:
Fonction qui active ou désactive le mode verbeux. Grace à cette fonction vous pouvez demander à WinParrot d'afficher (sous forme de texte) toutes ses actions.
Syntaxe: Verbose
(<Entier
1>)
Arguments:
<Entier 1> : Entier compris entre 0 et 7, le niveau 0
désactive le mode verbeux et le
niveau 7 est le niveau maximum.
Chaine de retour: Aucune
Remarques:
Cette fonction n'interrompt pas l’exécution de l’instruction en cours.
Exemples:
Activer le mode verbeux : Verbose (7)
Désactiver le mode verbeux : Verbose (0)
Description:
Fonction qui interrompt l’exécution de l’instruction en cours pendant un temps donnée en millisecondes. Lorsque le temps est écoulé WinParrot termine l’exécution de l’instruction en cours puis envoie à l’application cible le texte généré par celle-ci.
Syntaxe: Wait(<Entier 1>)
Arguments:
<Entier 1> : Temps en millisecondes de l’interruption.
Chaine de retour: Aucune
Remarques:
Pendant le temps d’attente, si celui-ci est supérieur à 1s, WinParrot affiche en titre et en secondes [Temps écoulé/Temps d’attente] ex ‘Wait 2/5’.
Vous pouvez interrompre à tout moment l’attente avec la touche V[END] (Touche définie par défaut [Fin], l’exécution de l’instruction en cours se poursuit, son résultat est envoyé à l’application cible puis WinParrot arrête la lecture).
Exemple:
Attente d’une seconde : Wait(1000)
Description:
Fonction qui arête la lecture et ferme le document.
Syntaxe: WprClose()
Arguments: Aucun.
Chaine de retour: Aucune
Remarque: Si il n’y a qu’un document ouvert WinParrot se
ferme aussi.
Exemples: Beep(3000,100)&WprClose();
Les boucles vous permettent de réaliser un certain nombre de fois les mêmes instructions. Les aiguillages vous permettent de rediriger l'exécution d'une instruction à une autre.
Pour réaliser une boucle vous devez au minimum utiliser un lieu (voir chapitre ‘Les lieux’, cela sera le début de la boucle) et la fonction GoTo() (voir fonction GoTo(), cela sera la fin de la boucle). Vous pouvez réaliser autant de boucles que vous le voulez.
Pour réaliser un certain nombre de fois une boucle vous devez aussi utiliser une variable, celle-ci sera utilisée comme compteur.
Exemple 1:
- Envoyer la chaine "$N=xx" où xx est la valeur de la variable $N allant de 0 à 9 à l’application cible puis ouvrir une fenêtre avec le texte "End", sur une ligne/enregistrement en 6 instructions :
$N=0; :MY_DEMO; "$N="&$N; $N=$N+1; If($N<10,GoTo(:MY_DEMO,1),); MsgBox("End")&Stop()
Explication de chaque
instruction de l’exemple 1:
$N=0 :
Initialisation de la variable $N
à zéro.
:MY_DEMO : Positionnement du
début de boucle avec ce lieu.
"$N="&$N : Actions à réaliser (ici envoie de la chaine "$N=xx")
$N=$N+1 :
On incrémente la variable $N.
If($N<10,GoTo(:MY_DEMO,1),) :
Test de fin de boucle, aller au lieu :MY_DEMO si $N<10,
aller à l’instruction suivante sinon.
MsgBox("End")&Stop() : Afficher le texte "End" et arrêter le lecture.
Exemple 2:
- Envoyer les valeurs des cellules de la colonne A d’une feuille d’un classeur Excel "data.xls" (tant que celles-ci ne sont pas vides) à l’application cible puis ouvrir une fenêtre avec le texte "End", sur 5 lignes/enregistrements en 6 instructions :
$N=0; $F="data.xls"
:BEGIN
$N=$N+1
If(XlsReadData($F,1, "A"&$N)!="",XlsReadData($F,1,
"A"&$N)&GoTo(:BEGIN,1),) MsgBox("End")&Stop()
Voir
la vidéo 'How to add a
loop in a WinParrot macro' sur ou charger la vidéo AVI .
Pour réaliser un aiguillage d'une instruction vers une instruction vous devez au minimum utiliser la fonction GoTo() (voir fonction GoTo(), cela sera le début de l'aiguillage) et un lieu (voir chapitre ‘Les lieux’, cela sera la fin de l'aiguillage).
Vous pouvez réaliser autant d'aiguillages que vous le voulez.
Exemple 1:
Cet exemple vous montre une méthode pour implémenter la gestion des messages d'erreurs.
Supposons que vous avez réalisé une macro WinParrot qui réalise la saisie d'un écran/formulaire, celle-ci sauvegarde le formulaire. Votre application affiche très certainement un message pour valider la sauvegarde (MSG_OK) ou des messages d'erreurs (MSG_ERR1, MSG_ERR2, MSG_ERR3…).
Lorsque votre application affiche un des messages MSG_XX vous pouvez relancer l'enregistrement, cliquer sur le message et arrêter l'enregistrement. Vous pouvez conserver une seule ligne/enregistrement par message.
Modifiez le code de chaque enregistrement comme ci-dessous.
-Pour l'enregistrement affichant le message MSG_OK:
:CHECK_MSG; IfImage(3, XlsWriteData($F,1,"E"&$L,"Ok")&GoTo(:BEGIN,1),)
Le lieu vous permet d'identifier le début des contrôles
(à utiliser avec la fonction GoTo() juste après la sauvegarde).
Recherche du message MSG_OK.
-Pour l'enregistrement affichant le message MSG_ERR1:
IfImage(,"V[RETURN"&XlsWriteData($F,1,"E"&$L,"Err 1")&GoTo(:BEGIN,1),)
Recherche du message MSG_ERR1 pendant zéro seconde
(car nous avons déjà attendu 3s à l'instruction précédente)
-Pour l'enregistrement affichant le message MSG_ERR2:
IfImage(,"V[RETURN"&XlsWriteData($F,1,"E"&$L,"Err
2")&GoTo(:BEGIN,1),)
Idem, recherche du message MSG_ERR2
-Pour l'enregistrement affichant le message MSG_ERR3:
IfImage(,"V[RETURN"&XlsWriteData($F,1,"E"&$L,"Err3")&GoTo(:BEGIN,1),)
Idem, recherche du message MSG_ERR3
-Pour arrêter la macro si un nouveau message est apparu (vous pourrez alors relancer l'enregistrement pour ajouter la gestion d'erreur de ce message):
XlsWriteData($F,1,"E"&$L,"?")&MsgBox("Message d'erreur inconnu")&Stop()
Arrêt de la macro si aucun message connu n'est apparu.
A noter que dans notre exemple :
-Lorsque vous ajoutez la fonction IfImage() sur chaque enregistrement vous devez aussi redimensionner le rectangle rouge pour entourer le message recherché.
-L'action corrective aux messages d'erreurs consiste à appuyer sur la touche entrée "V[RETURN".Vous devrez adapter cette action à votre application, généralement l'objectif de cette action consiste à retrouver un formulaire vide, près pour la saisie.
-La notification des messages
d'erreurs consiste à écrire dans la cellule du classeur Excel $F, feuille 1, colonne E et
ligne $L le
texte "Err.."
avec l'appel à la fonction XlsWriteData($F,1,"E"&$L,"Err..").
La variable $L est la
variable de la boucle principale.
Les fonctions Studio permettent de réaliser un montage à partir de vos enregistrements.
Vous pouvez supprimer, déplacer ou copier des enregistrements.
Pour afficher/cacher la bar ‘Studio’ vous devez appuyer sur le bouton :
Celle-ci comporte actuellement quatre boutons :
Voir
la vidéo 'How to use
the Studio features' sur ou charger la vidéo AVI .
Pour supprimer un enregistrement vous devez désactiver celui-ci (cliquez sur sa ligne, colonne ‘Jouer’). Puis vous pouvez cliquer sur le bouton : ou utiliser le raccourci clavier \[CTRL]D/[CTRL].
Pour déplacer un enregistrement vous pouvez cliquer sur un des boutons : ou , ou utiliser le raccourci clavier ‘\[LBUTTON]’ déplacez la souri puis ‘/[LBUTTON]’.
Pour copier un enregistrement vous pouvez cliquer sur le bouton : , ou utiliser le raccourci clavier ‘\[CTRL] \[LBUTTON]’ déplacez la souri puis ‘/[LBUTTON]/[CTRL]’.
La fonction Debug est disponible depuis la version 2.0.0 de WinParrot. Celle-ci peut vous aider à debugger vos macros ou à comprendre comment une macro WinParrot fonctionne en l’exécutant pas à pas.
Voir la vidéo 'How to use the Debug & Trace functions' sur ou charger la vidéo AVI .
Afin d’exécuter une macro pas à pas vous pouvez insérer n’importe où la fonction Debug ‘Debug(7)‘, cela va activer le mode debug dès cette instruction. Vous pouvez aussi insérer la fonction debug sans aucun argument pour mettre fin au mode debug Debug() ó Debug(0). Pour plus d’information veuillez consulter l’aide de la fonction Debug.
(1) Sélection
de l’instruction à exécuter.
Pour ne plus vous arrêter à cette étape vous devez décocher la case à cocher.
(2) Exécution
de l’instruction. Si l’instruction appelle plusieurs fonctions vous pouvez être
arrêté à l’exécution de chacun d’elle.
Pour ne plus vous arrêter à cette étape vous devez décocher la case à cocher.
(3) Résultat
de l’exécution de l’instruction qui va être envoyé à l’application cible.
Pour ne plus vous arrêter à cette étape vous devez décocher la case à cocher.
(4)
Image enregistrée avec l’image sélectionnée (dans
le rectangle rouge) pour la fonction IfImage. Le clique sera relatif à l’image
trouvée.
(5) Image trouvée par la fonction IfImage qui correspond à l’image sélectionnée avec les tolérances spécifiées (par défaut 0% pour la tolérance de couleurs et 0% pour la tolérance en pixel correspondant)
(6) Pour arrêter la lecture cliquez sur le bouton ‘Arreter’.
(7) Pour passer à l’étape suivante cliquez sur le bouton ‘Continuer’.
(8) Pour mettre fin au mode debug et continuer la lecture cliquez sur le bouton ‘Terminer’.
Le fenêtre Debug affiche le niveau de debug dans le titre.
Vous pouvez changer le niveau de debug en cochant/décochant les cases à cocher [1],[2] or [3].
Le niveau de debug est égale à 2*[1]+4*[2]+[3] où [x]=1 si la case à cocher est cochée, zéro sinon. Si toutes les cases à cocher sont cochées alors le niveau est égale à 2*1+4*+1*1=7
Notez que les zones (4) & (5) n’apparaissent que si l’instruction en cours appelle la fonction IfImage(), la fonction IfShape(), ou que le résultat de l’instruction exécutée contient des cliques de souris.
La fonction Trace est disponible depuis la version 2.0.0 de WinParrot. Celle-ci peut vous aider à debugger vos macros ou à comprendre comment une macro WinParrot fonctionne en l’exécutant pas à pas.
Le principal avantage de la fonction Trace par rapport à la fonction Debug est qu’avec celle-ci vous ne risquez pas de modifier le déroulement de l’exécution des instructions. Le fichier trace généré peut aussi contenir des images avec les copies écrans des zones recherchées, trouvées ou/et cliquées.
Si le mode trace est activé pendant la lecture WinParrot ouvrira automatiquement le fichier trace généré dès que la lecture se termine.
Voir la vidéo 'How to use the Debug & Trace functions' sur ou charger la vidéo AVI .
Afin d’activer le mode trace vous pouvez insérer n’importe où la fonction ‘Trace(2,,) ‘, cela va activer le mode trace dès cette instruction. Vous pouvez aussi insérer la fonction Trace avec aucun argument pour mettre fin au mode trace Trace(,,) ó Trace(0,,). Pour plus d’information veuillez consulter l’aide de la fonction Trace.
Par défaut la fonction trace génère une trace comme ci-dessous :
Vous obtiendrez cette trace si vous insérez les deux instructions suivantes
“$TIME="HHMMSS"; Trace(2,,"TraceTmp"&$TIME&"");” à la ligne 10, instruction N°3.
Le type de format par défaut est le HTML.
Les colonnes par défaut sont
représentées par des tags sépararés par le caractère ‘;’ dans la variable $TFORMAT. La valeur par défaut est
:
"LNUM.INUM;INSTRUCTION;DESC1;DESC2;OUTPUT;ISELECTED;IFOUND":
LNUM est le numéro de la ligne de l’instruction
exécutée.
INUM est le numéro de l’instruction exécutée
dans ligne courante.
INSTRUCTION est le code de l’instruction exécutée.
DESC1;DESC2 sont les descriptions de l’exécution de
l’instruction.
OUTPUT est la chaine résultant de l’exécution de
l’instruction. C’est la chaine de caractères / cliques / touches qui va être
envoyée à l’application cible.
ISELECTED image sélectionnée (dans le rectangle rouge)
à rechercher et / ou l’image centrée sur un point où il faut cliquer (croix
rouge).
IFOUND image trouvée (dans le rectangle rouge) et
/ ou l’image centrée sur le point où WinParrot va cliquer (croix rouge).
Vous pouvez changer le type de fichier trace en fichier Excel (ou csv) juste en ajoutant l’extension du nom du fichier « .xls ». Vous pouvez aussi ajouter des colonnes pour suivre les valeurs de vos variables.
Les instructions suivantes:
$TIME="HHMMSS"; $TFORMAT="$TIME;LNUM.INUM;DESC1;DESC2;INSTRUCTION;OUTPUT;$VAR1&$VAR2;
VAR3=$VAR3"; Trace(2,,"TraceTmp"&$TIME&".xls")
générerons un classeur Excel ‘TraceTmp163354.xls’ comme ci-dessous:
Depuis la version 1.1.5 ou supérieur vous pouvez exécuter des macros WinParrot depuis une ligne de commande (DOS ou autres). Cela peut-être utile pour :
- Créer vos raccourcis de lancement de WinParrot avec vos préférences (/nosound, /minimize …)
- Exécuter vos macros depuis un script système (BAT, CMD…)
- Planifier l’exécution de vos macros depuis n’importe quel gestionnaire de tâches (Gestionnaire de tâche de Windows ou autres)
Pour exécuter une macro en ligne de commande vous devez saisir une ligne de commande (sous une fenêtre DOS, ou [Démarrer/Exécuter], ou autre interpréteur).
Syntaxe :
winparrot_exe_full_path winparrot_wpr_full_path [options]
[$VARIABLE_NAME=value]
Où :
winparrot_exe_full_path est le chemin complet de l’exécutable WinParrot.
winparrot_wpr_full_path est le chemin complet de la macro WinParrot à exécuter.
[options] (facultatif) sont les options de lancement.
[$VARIABLE_NAME=value] (facultatif) sont les variables à initialiser.
Les options sont :
Option |
Description |
|
|
/close |
Pour fermer automatiquement la macro après l’exécution. |
/hide |
Pour cacher l’application (Les menus sont toujours visible depuis l’icone sur la barre des tâches). |
/minimize |
Pour réduire l’application au démarrage |
/nosound |
Pour ne pas
jouer ‘Hello’ au démarrage de
l’exécutable. |
/play |
Pour lancer automatiquement l’exécution de la macro à
l’ouverture. |
Exemples :
-Exécuter puis fermer mymacro.wpr :
C:\winparrot\bin\winparrot.exe
C:\winparrot\macro\mymacro.wpr /play /close
-Exécuter mymacro.wpr en initialisant la variable $MYNAME avec le contenu de la variable système %USERNAME% et la variable $TMP avec le contenu de la variable système %TEMP% :
C:\winparrot\bin\winparrot.exe
C:\winparrot\macro\mymacro.wpr /play $MYNAME=%USERNAME% $TMP=%TEMP%
$MYVAR_INT=1 $MYVAT_STR=”My test”
Pour planifier l’exécution de macros il vous suffit d’utiliser n’importe quel gestionnaire de tâche sous Windows.
Pour configurer celle-ci vous devez saisir la ligne de commande avec les chemins complets de ‘winparrot.exe’ et de votre macro WinParrot (le fichier *.wpr).
La ligne de commande suivante ne fonctionnera pas :
‘winparrot.exe mymacro.wpr /play’
Pour que celle-ci fonctionne il faut saisir par exemple :
‘C:\winparrot\bin\winparrot.exe
C:\winparrot\macro\mymacro.wpr /play’
Vous pouvez utiliser toutes les options de lancement en ligne de commande (voir chapitre précédant)
|
Remarque: Si votre gestionnaire de tâches ne prend pas en charge l’ouverture de session vous devez garder une session ouverte et désactiver l’écran de veille. |
Pour exécuter une macro avec des variables il vous suffit d’ajouter à la fin de la ligne de commande celles-ci sous la forme $VARIABLE_NAME=valeur (voir les exemples sous ‘Exécuter une macro en ligne de commande’).
Actuellement vous ne pouvez pas définir vos options via ce bouton.
Nous prévoyons de créer un écran d’options ou vous pourrez changer uniquement les paramètres qui n’ont aucune influence sur l’exécution des macros.
En effet toute macro qui fonctionne sur un ordinateur doit aussi fonctionner sur un autre ordinateur qui n’aurait pas les mêmes options.
Notez que vous pouvez déjà inclure dans vos macros un grand nombre d’options grâce aux fonctions comme SetKeySpeed(), SetMouseSpeed, SetPixelTol(), SetColorTol()…
A quoi sert la colonne commentaire ?
La colonne commentaire n’est pas utilisée par WinParrot actuellement. Vous pouvez y mettre vos commentaires pour chaque enregistrement.
Comment insérer des enregistrements ?
Fonction disponible depuis la version 1.1 de WinParrot, voir chapitre ‘Studio’
Comment supprimer des enregistrements ?
Fonction disponible depuis la version 1.1 de WinParrot, voir chapitre ‘Studio’
WinParrot ne trouve pas une image, un point de contrôle alors qu’il
est bien visible.
Juste après avoir réalisé un enregistrement sur certains ordinateurs (très anciens) il vous faut quitter WinParrot et ouvrir à nouveau votre document *.wpr pour que la lecture se déroule sans problème.
Les fonctions de recherche IfImage() et IfShape() utilisent en valeurs de tolérances celles définies en option (non disponible actuellement). Vous pouvez changer ces valeurs avec les fonctions SetPixelTol() et SetColorTol(). A l’inverse, si vous augmentez trop ces tolérances WinParrot risque de trouver une image qui ne correspond pas du tout à celle recherchée. Consulter les fonctions SetPixelTol() et SetColorTol() pour plus d’informations.
Vous pouvez nous envoyer vos questions, remarques à Support@winparrot.fr
Vous pouvez demander une formation express
ou/et une assistance sur site afin de vous aider à réaliser des macros sur vos
applications (durée maximum 4 heures). Si vous souhaitez nous solliciter merci
de préciser brièvement vos besoins à support@winparrot.fr.
Nous nous engageons à répondre à toute demande.
Présentation - Installation / Désinstallation - Les fonctions - FAQ