[POWERSHELL] Script Graphique

Script Graphique [POWERSHELL] - Logiciels - Windows & Software

Marsh Posté le 27-06-2013 à 12:18:46    

Bonjour à tous,
 
Je suis assez débutant dans powershell, et je souhaiterai faire une petite interface graphique. Outch !
 
Pour résumer l'histoire, je voudrais qu'il y est 3 fenêtres :
 
- La première avec deux boutons : Choix1 et Choix2
Il faut que je sauvegarde le choix de l'utilisateur. Donc dans l'évènement du clique du bouton, je mets ma variable
 

Code :
  1. $choix = 1
  2. $choix = 2


 
- La deuxième avec deux boutons : Ok et Annuler
Si clique sur Annuler, revenir à la première fenêtre.
Si clique Ok, alors continuer, en ouvrant la troisième fenêtre.
 
- La troisième avec pareil, deux boutons : Ok et Annuler
Si clique Annuler, revenir à la fenêtre précédente
Si clique Ok, alors ACTIONS(faire les actions que j'ai prévu)
 
Ce que je fais : je définie mes fenêtre au tout début du script. Exemple :

Code :
  1. $form_choix_action = New-Object System.Windows.Forms.Form  # Fenêtre pour choisir si MàJ Arborescence ou MàJ Droits
  2.     # Création des bouttons pour le choix actions entre MàJ Arborescence et MàJ Droits, sur $form_choix_action
  3.     $b_arbo = New-Object System.Windows.Forms.Button
  4.     $b_droit = New-Object System.Windows.Forms.Button


 
Puis je créé ma fonction qui va créer ma fenêtre avec ses paramètres, et ses boutons (et leurs paramètres). Exemple :

Code :
  1. function Generation_form_choix_action {
  2.     # Evenement lors du clique sur "MàJ Arborescence"
  3.     $b_arbo_click = 
  4.     {                                             
  5.         Write-Host "Action MàJ Arborescence"                   
  6.         #$choix = $null                                             
  7.         $choix = 1                                                     
  8.         #$form_choix_action.Close()                                                 
  9.         #Generation_form_choix_appweb($choix)                                       
  10.         #$choix = $null                                                         
  11.     }                                                                                     
  12.                                                                                            
  13.     # Evenement lors du clique sur "MàJ Droits"                                       
  14.     $b_droit_click =                                                           
  15.     {                                                                                     
  16.         Write-Host "Action MàJ Droits"                                           
  17.         #$choix = $null                                                           
  18.         $choix = 2                                                               
  19.         exit
  20.         #$form_choix_action.Close()                                               
  21.         #Generation_form_choix_appweb($choix)                                   
  22.         #$choix = $null                                           
  23.     }                                                                               
  24.                                                                                        
  25. #-------------------------------------------------------------------------------------------------------------#
  26. #------------------------------------ CODE POUR form_choix_action --------------------------------------------#
  27. #-------------------------------------------------------------------------------------------------------------#
  28.                                                                                                               #
  29. # DEFINITION DE LA FENETRE FORM_CHOIX_ACTION                                                                  #
  30.                                                                                                               #
  31.     # Texte servant de nom pour la fenêtre                                                                    #
  32.     $form_choix_action.Text = "Choisir l'action à réaliser :"                                                 #
  33.     # Nom de la fenêtre                                                                                       #
  34.     $form_choix_action.Name = "form_choix_action"                                                             #
  35.     # JESAISPAS                                                                                               #
  36.     $form_choix_action.DataBindings.DefaultDataSourceUpdateMode = 0                                           #
  37.                                                                                                               #
  38.     # Définition de la taille de la fenêtre dans l'objet $System_Drawing_Size                                 #
  39.     $System_Drawing_Size = New-Object System.Drawing.Size                                                     #
  40.     $System_Drawing_Size.Width = 300                                                                          #
  41.     $System_Drawing_Size.Height = 125                                                                         #
  42.     # Puis on assigne la taille dans la $form1 dans l'attribut .ClientSize                                    #
  43.     $form_choix_action.ClientSize = $System_Drawing_Size                                                      #
  44.                                                                                                               #
  45. # DEFINITION DES DEUX BOUTTONS DE LA FENETRE FORM_CHOIX_ACTION                                                #
  46.                                                                                                               #
  47.     #$b_arbo.TabIndex = 4                                                                                     #
  48.     $b_arbo.Name = "b_arbo"                                                                                   #
  49.                                                                                                               #
  50.     # Définition de la taille du boutton dans l'objet $System_Drawing_Size                                    #
  51.     $System_Drawing_Size = New-Object System.Drawing.Size                                                     #
  52.     $System_Drawing_Size.Width = 120 #Longueur                                                                #
  53.     $System_Drawing_Size.Height = 25 #Largeur                                                                 #
  54.     $b_arbo.Size = $System_Drawing_Size                                                                       #
  55.     # On utilise le même style/couleur que le fond de la fenêtre                                              #
  56.     $b_arbo.UseVisualStyleBackColor = $True                                                                   #
  57.                                                                                                               #
  58.     # Texte remplissant le boutton                                                                            #
  59.     $b_arbo.Text = "MàJ Arborescence"                                                                         #
  60.                                                                                                               #
  61.     # On définit l'emplacement. Attribut .Location                                                            #
  62.     $System_Drawing_Point = New-Object System.Drawing.Point                                                   #
  63.     $System_Drawing_Point.X = 90                                                                              #
  64.     $System_Drawing_Point.Y = 25                                                                              #
  65.     $b_arbo.Location = $System_Drawing_Point                                                                  #
  66.     $b_arbo.DataBindings.DefaultDataSourceUpdateMode = 0                                                      #
  67.                                                                                                               #
  68.     # Fonction qui se lance lorsque l'on clique sur le boutton                                                #
  69.     $b_arbo.add_Click($b_arbo_click)                                                                          #
  70.                                                                                                               #
  71.     # On ajoute le boutton à la fenêtre                                                                       #
  72.     $form_choix_action.Controls.Add($b_arbo)                                                                  #
  73.                                                                                                               #
  74.     #---------------------------------------#                                                                 #
  75.                                                                                                               #
  76.     #$b_droit.TabIndex = 4                                                                                    #
  77.     $b_droit.Name = "b_droit"                                                                                 #
  78.                                                                                                               #
  79.     # Définition de la taille du boutton dans l'objet $System_Drawing_Size                                    #
  80.     $System_Drawing_Size = New-Object System.Drawing.Size                                                     #
  81.     $System_Drawing_Size.Width = 120 #Longueur                                                                #
  82.     $System_Drawing_Size.Height = 25 #Largeur                                                                 #
  83.     $b_droit.Size = $System_Drawing_Size                                                                      #
  84.     # On utilise le même style/couleur que le fond de la fenêtre                                              #
  85.     $b_droit.UseVisualStyleBackColor = $True                                                                  #
  86.                                                                                                               #
  87.     # Texte remplissant le boutton                                                                            #
  88.     $b_droit.Text = "MàJ Droits"                                                                              #
  89.                                                                                                               #
  90.     # On définit l'emplacement. Attribut .Location                                                            #
  91.     $System_Drawing_Point = New-Object System.Drawing.Point                                                   #
  92.     $System_Drawing_Point.X = 90                                                                              #
  93.     $System_Drawing_Point.Y = 75                                                                              #
  94.     $b_droit.Location = $System_Drawing_Point                                                                 #
  95.     $b_droit.DataBindings.DefaultDataSourceUpdateMode = 0                                                     #
  96.                                                                                                               #
  97.     # Fonction qui se lance lorsque l'on clique sur le boutton                                                #
  98.     $b_droit.add_Click($b_droit_click)                                                                        #
  99.                                                                                                               #
  100.     # On ajoute le boutton à la fenêtre                                                                       #
  101.     $form_choix_action.Controls.Add($b_droit)                                                                 #
  102.                                                                                                               #
  103. # Affichage de la fenêtre                                                                                     #
  104. $form_choix_action.ShowDialog()| Out-Null                                                                     #
  105.                                                                                                               #
  106. #-------------------------------------------------------------------------------------------------------------#
  107. }


 
Et après avoir 3 fonctions (semblables à celles-ci), j'appelle la première dans mon script :

Code :
  1. # Execution du script. Appelle de la première fonctions
  2. Generation_form_choix_action


 
 
Problème : Des boucles se créées, les fenêtres ne reviennent pas où je veux etc. Donc je ne sais pas comment faire. Si quelqu'un a réussi à tout lire, et comprendre mon problème, et ce que je veux faire. Je lui supplie de m'aider !
 
Merci d'avance,
 
Cdt,
 
Nico.

Reply

Marsh Posté le 27-06-2013 à 12:18:46   

Reply

Marsh Posté le 28-06-2013 à 09:16:17    

Le sujet peut-être clos, je vais passer par un affichage console, qui sera beaucoup plus simple.
 
Le principe est de boucler une fois pour un choix, puis action, puis re boucler action choix, etc..

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed