Problème d'action sur un bouton (debutant)

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
nexus7
Niveau 1
Niveau 1
Messages : 2
Enregistré le : jeu. 11 janv. 2018 16:45
Localisation : Fiji
Status : Hors ligne

Problème d'action sur un bouton (debutant)

#1

Message par nexus7 »

Bonjour !

Je débute avec AutoIT et n'ai pas beaucoup de notions en programmation.

Je tente d'écrire un programme permettant d'avoir une fenêtre avec des boutons qui réalisent une action lorsqu'on clique dessus. (Ca pourrais vous paraitre enfantin, mais moi j'ai beaucoup de mal). J'ai des difficultés à trouver des exemples que je comprend (vu mon niveau c'est compliqué).

Voici ce que j'ai fait pour le moment, mais ça ne fonctionne pas, il ne se passe rien lorsque je clique sur le bouton, et je ne comprend pas ce que j'ai fait de mal. Pourriez-vous m'aider s'il vous plait ?


; AutoIt 3.0.103 example
; 17 Jan 2005 - CyberSlug
; This script shows manual positioning of all controls;
;   there are much better methods of positioning...
#include <GuiConstants.au3>

$OSArch = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment", "PROCESSOR_ARCHITECTURE")
; GUI
$hGUI = GuiCreate("SysPrep W10", 400, 400)
GuiSetIcon(@SystemDir & "\mspaint.exe", 0)

; BUTTON
$Firefox = GuiCtrlCreateButton("Firefox", 10, 45, 100, 30)
$7zip = GuiCtrlCreateButton("7-Zip", 10, 75, 100, 30)
$Infra = GuiCtrlCreateButton("InfraRecorder", 10, 105, 100, 30)

$Java = GuiCtrlCreateButton("Java", 110, 45, 100, 30)
$Loffice = GuiCtrlCreateButton("Libre Office", 110, 75, 100, 30)
$Ostarter = GuiCtrlCreateButton("Office Starter", 110, 105, 100, 30)

$Adober = GuiCtrlCreateButton("Acrobat Reader", 210, 45, 100, 30)
$vlc = GuiCtrlCreateButton("VLC", 210, 75, 100, 30)
$Opatch = GuiCtrlCreateButton("Patch Office", 210, 105, 100, 30)

$Fram35 = GuiCtrlCreateButton(".NET 3.5", 10, 170, 100, 30)
$Qlaunch = GuiCtrlCreateButton("Quick Launch", 10, 200, 100, 30)
$Dicons = GuiCtrlCreateButton("Desktop Icons", 10, 230, 100, 30)

$DLext = GuiCtrlCreateButton("DL Extensions", 110, 170, 100, 30)

$label1 = GuiCtrlCreateLabel("Préparation du système pour les machines Windows 10", 75, 5)

$label2 = GuiCtrlCreateLabel("Système " & $OSArch, 150, 22)
$label2color = GuiCtrlSetColor(-1,0xFF0000)


GUISetState(@SW_SHOW, $hGUI)

  $iPID = 0
  $idMsg = GUIGetMsg()
 
  ;While ($idMsg <> $GUI_EVENT_CLOSE) And ($idMsg <> $idClose)
  ;      If $idMsg = $Firefox Then
   ;         ; Exécute le Bloc-notes avec la fenêtre agrandie au maximum.
   ;         $iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)
   ;     EndIf
        $idMsg = GUIGetMsg()
  ;  WEnd
While GuiGetMsg() <> $GUI_EVENT_CLOSE
   If $idMsg = $Firefox Then
      $iPID = MsgBox(1, "test", "test")
   EndIf
WEnd
GUIDelete($hGUI)


;; GUI MESSAGE LOOP
;GuiSetState()
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Problème d'action sur un bouton (debutant)

#2

Message par mikell »

Tu devrais commencer par les exemples de script du fichier d'aide ... il faut comprendre comment ça marche ! :mrgreen:

Dans ton code, le problème vient de la boucle While/Wend

ça c'est pas ok :
While GuiGetMsg() <> $GUI_EVENT_CLOSE
        If $idMsg = $Firefox Then   ; <<<<<<< c'est quoi $idMsg ?
                $iPID = MsgBox(1, "test", "test")
        EndIf
WEnd

mais ça oui :
While 1              ; boucle infinie
       $idMsg = GuiGetMsg()       ; $idMsg = message envoyé quand clic dans la gui
        If $idMsg =  $GUI_EVENT_CLOSE Then Exit    ; si message = fermeture, exit
        If $idMsg = $Firefox Then        ; si message = bouton firefox, messagebox
                $iPID = MsgBox(1, "test", "test")
        EndIf
WEnd
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
nexus7
Niveau 1
Niveau 1
Messages : 2
Enregistré le : jeu. 11 janv. 2018 16:45
Localisation : Fiji
Status : Hors ligne

Re: Problème d'action sur un bouton (debutant)

#3

Message par nexus7 »

Hello,

Merci beaucoup pour ton aide Mikell, ça fonctionne parfaitement ! Je vais pouvoir m'atteler à la suite.
Je viendrais partager le résultat final avec la communauté, cela pourra sans doute être utile à plus d'un.

Bonne journée !
Répondre