Le handle est un identifiant (numérique), qui permet d'identifier de manière unique un objet (fenêtre, contrôle...) tout au long de son existence*. L'affectation du handle à un objet est géré par Windows.
En utilisant AutoIt Window Info, tu verras que chaque fenêtre et chaque contrôle ont leur propre handle.
(*) Windows affecte un handle à un objet dès qu'il est créé, mais le handle change d'un coup sur l'autre. Faire le test avec AutoIt Window Info.
Pour ce qui est de l'utilité, elle diffère suivant les fonctions.
Pour
MsgBox() l'utilisation du Handle permet de lier la boîte de dialogue à une fenêtre existante.
Regarde le comportement de la boîte avec le code suivant :
► Afficher le texte
Code : Tout sélectionner
$iPid = Run("notepad") ; On lance un bloc-notes
$hWnd = WinWait("[CLASS:Notepad]") ; On récupère Le handle de la fenêtre
MsgBox(0, "", "HANDLE : " & $hWnd) ; La boîte de dialogue n'est lié à aucune fenêtre
ProcessClose($iPid) ; On ferme le bloc-notes
$iPid = Run("notepad") ; On lance un autre bloc-notes
$hWnd = WinWait("[CLASS:Notepad]") ; On récupère Le handle de la fenêtre : il est différent du précédent
MsgBox(0, "", "HANDLE : " & $hWnd, 0, $hWnd) ; La boîte de dialogue est "la fille" du bloc-notes
ProcessClose($iPid) ; et on ferme notre bloc-notes
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !