Page 1 sur 1

Mon premier outil AutoIt : vos avis?

Posté : mer. 23 juil. 2025 09:39
par Kaloo
J’ai découvert AutoIt récemment en cherchant un moyen d’automatiser des trucs sur libre-octet et franchement… je crois que j’ai pris un coup de foudre 😂 Depuis, je code dès que j’ai une minute, j’ai l’impression d’avoir raté ma vocation ! Je me suis lancé dans un mini projet perso : une petite interface qui me permet d’ouvrir un dossier de travail et de lancer deux applis que j’utilise souvent dans ma journée. L’idée c’est de gagner 10 secondes à chaque fois, mais surtout de m’entraîner à faire un GUI simple et comprendre comment marchent les événements.
Voilà un bout du code que j’ai pondu :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>

GUICreate("Lanceur Perso", 350, 180)
$btnOpenFolder = GUICtrlCreateButton("Ouvrir Dossier Projet", 50, 30, 250, 30)
$btnOpenApp = GUICtrlCreateButton("Lancer Notepad", 50, 80, 250, 30)
GUISetState()

While 1
    $event = GUIGetMsg()
    Switch $event
        Case $GUI_EVENT_CLOSE
            Exit
        Case $btnOpenFolder
            If FileExists("C:\Users\Kaloo\Documents\ProjetAutoIt") Then
                ShellExecute("C:\Users\Kaloo\Documents\ProjetAutoIt")
            Else
                MsgBox(16, "Erreur", "Le dossier n'existe pas !")
            EndIf
        Case $btnOpenApp
            Run("notepad.exe")
    EndSwitch
WEnd
Bon je sais que le code est probablement un peu “noob”, j’ai pas encore tous les bons réflexes. J’ai tenté de gérer le cas où le dossier n’existe pas mais il y a peut etre mieux à faire ou une facon plus propre d’écrire la boucle ou les conditions. Ce serait surtout top si vous avez des tips pour faire des vérifs plus robustes (genre si l’app plante ou si le chemin est vide). Je débute encore mais je kiffe vraiment le truc, donc tous vos conseils sont les bienvenus :)
Merci d’avance

Re: Mon premier outil AutoIt : vos avis?

Posté : mer. 23 juil. 2025 12:04
par TommyDDR
Bonjour Kaloo, bienvenu dans la famille ahah !

J'ai refait ton programme de la façon dont je l'aurai fait et je t'ai mis des commentaires pour expliquer le changement par rapport à ce que tu as fait.

N'hésite pas si tu as des questions !
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>

Opt("MustDeclareVars", 1) ; Permet de forcer le compilateur à déclencher une erreur si une variable n'est pas déclarée (Global / Local / Dim), cela t'évitera bien des soucis.
Opt("GUIOnEventMode", 1) ; Permet d'activer le mode "évenement" des GUI, au lieu de passer par GUIGetMsg

Global $gui = GUICreate("Lanceur Perso", 350, 180)
GUISetOnEvent($GUI_EVENT_CLOSE, quit, $gui) ; Permet d'associer le clic sur la croix / alt + f4 / echap à la fonction "quit"
Global $btnOpenFolder = GUICtrlCreateButton("Ouvrir Dossier Projet", 50, 30, 250, 30)
Global $btnOpenApp = GUICtrlCreateButton("Lancer Notepad", 50, 80, 250, 30)
GUICtrlSetOnEvent($btnOpenFolder, openFolder) ;Permet d'associer le clic sur un control à une fonction
GUICtrlSetOnEvent($btnOpenApp, openApp)
GUISetState(@SW_SHOW, $gui) ; Personnellement je prends l'habitude d'expliciter l'état voulu ainsi que la Gui ciblée, car sinon il s'applique à "la dernière fenêtre créée" mais ça m'a déjà amené à des problèmes

While 1
   Sleep(10)
WEnd

Func openFolder()
   If FileExists("C:\Users\Kaloo\Documents\ProjetAutoIt") Then
      ShellExecute("C:\Users\Kaloo\Documents\ProjetAutoIt")
   Else
      MsgBox(16, "Erreur", "Le dossier n'existe pas !")
   EndIf
EndFunc

Func openApp()
   Run("notepad.exe")
EndFunc

Func quit()
   Exit
EndFunc

Re: Mon premier outil AutoIt : vos avis?

Posté : lun. 04 août 2025 22:48
par sina156
Salut Kaloo,

Ton premier projet est vraiment sympa, ça marche bien et c’est clair. Ce que tu as fait est un très bon début pour apprendre AutoIt ! Pour rendre ton script un peu plus robuste et lisible, tu pourrais activer quelques options qui obligent à déclarer les variables et utiliser le mode événement pour gérer les actions des boutons, ça évite d’avoir une boucle avec GUIGetMsg et ça rend le code plus fluide. Aussi, penser à vérifier que l’application se lance bien ou que le chemin n’est pas vide peut éviter quelques erreurs.

Le modérateur TommyDDR a partagé une version améliorée de ton code qui pourrait t’inspirer. Continue comme ça, c’est en pratiquant qu’on progresse le plus, et surtout, garde cet enthousiasme !

Si tu veux, je peux aussi t’aider à approfondir certains points ou regarder ton code.

Bon courage et bon coding !
Sina