Bonjour.
Je vais commencer doucement pour ce tutoriel. Mais bon, c'est un peu débutant - débutant.
Voici la liste des commandes commençant par des "Win", elles seront toutes explicitées dans l'ordre, avec un exemple d'utilisation bien sûr :
WinClose
WinGetHandle
WinGetPos
WinGetTitle
WinExists
WinKill
WinGetProcess
WinMove
WinActive
WinActivate
WinMinimizeAll
O: Commandes de contrôle
O: Commandes informatives
On va y aller tout doucement. Ce tutoriel sera donc séparé en dix-huit parties, chacune pour une commande. Si vous avez bien compté ^^, vous remarquerez qu'il manque les commandes suivantes :
WinList
WinGetState
WinGetText
WinSetTitle
WinFlash
... c'est un peu plus long, alors je m'en chargerais plus tard.
1. WinClose
1.a Présentation
Cette commande permet de fermer une fenêtre en utilisant la commande racine MS-DOS identique à celle que vous utilisez inconsciemment pour fermer une fenêtre (oui, c'est ça, avec la petite croix rouge ^^). Elle permet donc de la fermer, mais avec un niveau de "radicalité" assez bas quand le programme qui gère la fenêtre à un bug par exemple.
1.b Fonctionnement
Cette commande fonctionne avec deux flags le titre de la fenêtre, et optionnellement le texte que cette fenêtre contient.
Like this :
WinClose ( "title" [, "text"] )
Exemple d'application simple, testable chez vous :
Run("Notepad.exe", "", @SW_MAXIMIZE)
sleep(1000)
WinClose ("Sans titre - Bloc notes")
2.WinGetHandle
2.a Présentation
Cet commande permet de récupérer l'handle d'une fenêtre, cet ID bien connu des programmateurs de GUI, car il permet par la suite de reproduire le style de la fenêtre dans nos propres GUI's.
2.b Fonctionnement
Encore une fois, cette commande fonctionne avec deux flags le titre de la fenêtre, et optionnellement le texte que cette fenêtre contient.
Como eso :
WinGetHandle ( "title" [, "text"] )
Cette commande retourne donc l'handle de la fenêtre. Cependant, pour faire convenablement fonctionner cette commande, je préconise cette ligne de code :
AutoItSetOption("WinTitleMatchMode", 4)
...ce qui permet de configurer le script de manière à supporter les handle's.
Un exemple :
AutoItSetOption("WinTitleMatchMode", 4)
Run("Notepad.exe", "", @SW_MAXIMIZE)
;Récup' de l'handle de la fenêtre "notepad"
$handle = WinGetHandle("Sans titre - Bloc-Notes")
If @error Then
MsgBox(4096, "Error", "Could not find the correct window")
Else
; Marque l'handle du notepad DANS le notepad ^^
ControlSend($handle, "", "Edit1", "AbCdE")
EndIf
3.WinGetPos
3.a Présentation
Retourne une array à une dimension et quatre options, comme ceci :
$array[0] = X position
$array[1] = Y position
$array[2] = Largeur
$array[3] = hauteur
3.b Fonctionnement
Ben...tout simplement, en l'incluant dans une variable, et en choisissant les array qu'on veut !
ex :
Run("Notepad.exe", "", @SW_MAXIMIZE)
$pos = WinGetPos ("Sans titre - Bloc-Notes")
;Et là, je récupère la largeur de la fenêtre :
Tooltip ("Tutoriel", $pos[2])
4.WinGetTitle
4.a Présentation
Renvoie le titre complet de la fenêtre avec un système de "mots clefs", en mettant seulement par exemple le début du titre.
4.b Fonctionnement
Flag 1: Le nom incomplet ou le début du nom de la fenêtre.
exemple :
Run("Notepad.exe", "", @SW_MAXIMIZE)
$title = WinGetTitle("Sans titre -", "")
MsgBox(0, "Le nom en entier de la fenêtre était :", $title)
4.WinExists
4.a Présentation
Permet de vérifier si une fenêtre existe ou pas. Retourne la valeur 1 si oui, et 0 si non.
4.b Fonctionnement
Comme d'hab', avec un flag pour le titre, et un optionnel pour le texte de la fenêtre. Un exemple :
Run("Notepad.exe", "", @SW_MAXIMIZE)
If WinExists("Sans titre - Bloc-Notes", "") Then
WinClose ("Sans titre - Bloc-Notes")
EndIf
5.WinKill
5.a Présentation
Permet de fermer une fenêtre avec une "radicalité" maximale.
5.b Fonctionnement
rhooo... je m'ennuie, c'est TOUJOURS LA MEME CHOSe POUR LEs FLAGS !!!! Pourquoi j'ai fait ce tuto...:?
Voila un exemple :
WinKill("Sans Titres - ", "")
6.WinGetProcess
6.a Présentation
Plus intéressant, permet de récupérer le PID de l'exécutable du programme qui gère la fenêtre.
6.b Fonctionnement
Toujours les mêmes flags... Un exemple :
Run("notepad.exe")
$pid = WinGetProcess("[CLASS]")
MsgBox(4096, "Le PID est", $pid)
Mais avant tout... qu'est-ce que c'est un PID ? C'est un identifiant codé par votre système qui permet de gérer le processus, c'est comme un genre de carte d'identité.
Une commande simple pour déterminer le nom du processus :
ProcessList : programmez les deux dimensions possibles, pour tous les arrays, et attendez que ca corresponde ;)
7.WinMove
7.a Présentation
Permet de déplacer une fenêtre à un endroit déterminé.
7.b Fonctionnement
Avec les flags suivants (ah, enfin du changement ^^) :
WinMove ( "titre", "texte", x, y [, largeur [, hauteur[, vitesse]]] )
9.WinActivate
9.a Présentation
Permet de passer une fenêter au premier plan.
9.b Fonctionnement
Encore ces horribles flags ^^ Donc, toujours la même chose pour cette super pratique fonction.
Run("notepad.exe")
WinActivate ("Sans Titre -"
10.WinActive
10.a Présentation
Permet de vérifier si une fenêtre est au premier plan ou pas.
10.b Fonctionnement
lémêmefichuflag, puis un exemple avec une boucle pour changer :
While WinActive ("Dofus")
ToolTip ("AhAhAH", "Arrête de jouer à ce jeu bidon !Espèce d'accro va ^^")
WEnd
11.WinMinimizeAll
11.a Présentation
Super rigolote cette fonction ! Elle permet de réduire toutes vos fenêtres, et de voir enfin apparaître votre bureau (youpi ^^)
11.a Fonctionnement
Très Simple, aucun flag n'est nécessaire, il faut juste deux petites parenthèses pour la faire marcher !
WinMinimizeAll()
Et il ya aussi sa petite soeur, qui permet de rectifier l'utilisation de cette fonction, en les remmettant toutes au premier plan.
WinMinimizeAllUndo()
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Et voila, ce tutoriel est terminé. J'espère qu'il aura aidé les débutants de ce merveilleux langage de programmation !!
@+
EDIT: en création, manque l'ajout de plusieurs commandes.