[..] Gérer des GUIs en cascade

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

[..] Gérer des GUIs en cascade

#1

Message par zouzou »

bonjour

j'ai créé des GUI avec différents boutons (chacun me permettant de réaliser une action particulière)

ma première GUI:

Code : Tout sélectionner

#include <GUIConstants.au3>

GUICreate("Préparation STATION XP_START - by Zoub") ; crée une boite de dialogue avec texte centré

Opt("GUICoordMode",2)
$Button_1 = GUICtrlCreateButton ("1 - Actions PRE-CLONAGE",10, 3, 180)
$Button_2 = GUICtrlCreateButton ("2 - Actions POST-CLONAGE", -180, 3, 180)
$Button_3 = GUICtrlCreateButton ("3 - Installation applications", -180, 3, 150)
$Button_4 = GUICtrlCreateButton ("4 - Kaspersky", -150, 3, 100)
$Button_5 = GUICtrlCreateButton ("5 - TCP IP", -100, 3, 100)

GUISetState ()      ; will display an  dialog box with 2 button

; Run the GUI until the dialog is closed
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
             ExitLoop
        Case $msg = $Button_1
             #include <Process.au3>
             ; ouverture fenetre PRE-CLONAGE
             RunWait ("C:\temp\scripts auto it\preclone.exe")
        Case $msg = $Button_2
             #include <Process.au3>
             ; ouverture fenetre POST-CLONAGE
             RunWait ("C:\temp\scripts auto it\postclone.exe")
        Case $msg = $Button_3
             #include <Process.au3>
             ; ouverture fenetre INSTALLATION APPLIS
             RunWait ("C:\temp\scripts auto it\installapp.exe")
        Case $msg = $Button_4
             #include <Process.au3>
             ; ouverture fenetre KASPERSKY
             RunWait ("C:\temp\scripts auto it\install kav.exe")
        Case $msg = $Button_5
             #include <Process.au3>
             ; ouverture fenetre TCPIP
             RunWait ("C:\temp\scripts auto it\tcpip.exe")
    EndSelect
Wend
 
admettons que je clique sur le premier bouton, j'ai alors la GUI suivante qui s'ouvre:

Code : Tout sélectionner

#include <GUIConstants.au3>

GUICreate("Préparation STATION XP_PRECLONE - by Zoub") ; crée une boite de dialogue avec texte centré

; ============================================================================================================
; Sortie station du domaine NT: Arret Auto + Autologon au prochain reboot sur compte "Administrateur" local
; Suppression Pagefile: reboot auto + Autologon au prochain reboot sur compte "Administrateur" local + suppression fichier
; Preparateur ESU:
; ============================================================================================================


Opt("GUICoordMode",2)
$Button_1 = GUICtrlCreateButton ("1 - Modification ID station + NEWSID", 10, 3, 200)
$Button_2 = GUICtrlCreateButton ("2 - Execution fichier modif Autologon",-200, 3, 200)
......
$Button_14 = GUICtrlCreateButton ("14 - Retour", -80, 3, 80)

GUISetState ()      ; will display an  dialog box with 2 button

; Run the GUI until the dialog is closed
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
             ExitLoop
        Case $msg = $Button_1
             #include <Process.au3>
             ; Modification de L'ID de la station + Newsid
             ; reboot automatique
             ; autologon sur compte "Administrateur" local
             RunWait ("C:\temp\clone\id.bat")
             ; tempo 500 ms
             Sleep(500)
        Case $msg = $Button_2
             #include <Process.au3>
             ; Modification Autologon1.reg
             ; Modification Autologon2.reg
             ; Modification Sufdns.reg
             ; Modification mdpadmin.bat
             ; Modification compte.bat
             ; Modification mdpdaip.bat
             ; Modification integ1.bat
             ; Modification integ2.bat
             ; Modification sortie.bat
             RunWait ("C:\temp\clone\modif autologon.exe")
             ; tempo 500 ms
             Sleep(500)
............        
        Case $msg = $Button_14
             #include <Process.au3>
             ; fermeture fenetre PRECLONE
             RunWait ("C:\temp\killpreclone.bat")
    EndSelect
Wend

 
ma question concerne le bouton 14, à savoir comment fermer la GUI en cours et revenir à ma première GUI
j'ai essayé "GUIDelete()": ça ferme bien la GUI en cours mais aprés je ne peux plus fermer la première GUI

pour le moment j'ai trouvé un utilitaire sur le oueb qui me tue le process de la seconde GUI mais je préfèrerai faire ça par AUTOIT si c'est possible

merci pour vous réponse
zouzou (débutant chez AUTOIT)
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] gérer des GUI en cascade

#2

Message par Yogui »

dans un premier temps sachez qu'il n'est pas nécessaire de mettre: #include <Process.au3> plusieurs fois une seule suffit au début de votre code (en dessou de : #include <GUIConstants.au3>

Pour ma part pour gérer plusieur form soit je fais plusieurs exe soit j'utilise GUISetState(@SW_SHOW) et GUISetState(@SW_SHOW) et GUISetState(@SW_HIDE)

exemple
► Afficher le texte

il existe certainement une autre solution mais je n'ai pas trouvé plus simple
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] gérer des GUI en cascade

#3

Message par Tlem »

2 solutions :

- Passez votre code en mode évènement. Voir l'aide de AutoIt avec le terme 'GUI OnEvent Mode' (les exemples fournit sont assez compréhensibles). Vous pouvez aussi faire des recherches sur ce forum.

- Utilisez le mode avancé de la fonction GUIGetMsg() qui retourne des tas de renseignements sur qui/quoi/ou. :wink:
Regardez le code du fichier zip de ce message http://www.autoitscript.fr/forum/viewto ... 501#p11501 qui utilise cette fonctionnalité.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Jikoo
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 17 sept. 2008 00:04
Localisation : France
Status : Hors ligne

Re: [..] Gérer des GUIs en cascade

#4

Message par Jikoo »

Hi,

Sinon, il y a aussi le système d'onglets très pratique.

Voici un petit exemple : une fenêtre s'affiche à l'ouverture d'un onglet.
http://www.autoitscript.com/forum/index ... t&p=369570

Sinon voici une méthode plus difficile (juste pour montrer une autre façon de répondre à votre demande) réalisée par Alek et MrCreator du forum anglais.
http://www.autoitscript.com/forum/index ... t&p=551722
► Afficher le texte
GCS Search 1.07 (GUI Control Styles Search)
Un outil multilingue pour vous aider avec les vieux scripts notamment sur les forums. Il y a aussi un menu dynamique. Mettez vos raccourcis à l'intérieur. Convertisseur de couleurs intégré.
zouzou
Niveau 2
Niveau 2
Messages : 22
Enregistré le : lun. 10 déc. 2007 17:39
Status : Hors ligne

Re: [..] Gérer des GUIs en cascade

#5

Message par zouzou »

merci beaucoup pour toutes ces réponses
j'ai commencé à tester diverses solutions

le seul pb que je peux reprocher à autoit c'est la profusion des commandes et l'absence de docs en francais (pas toujours facile de s'y retrouver surtout pour les néophytes)

mais bon il y a cette trés bonne initiative de forum
zouzou
Avatar du membre
Jikoo
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 17 sept. 2008 00:04
Localisation : France
Status : Hors ligne

Re: [..] Gérer des GUIs en cascade

#6

Message par Jikoo »

GCS Search 1.07 (GUI Control Styles Search)
Un outil multilingue pour vous aider avec les vieux scripts notamment sur les forums. Il y a aussi un menu dynamique. Mettez vos raccourcis à l'intérieur. Convertisseur de couleurs intégré.
Répondre