Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1341 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  [POWERSHELL] Script Graphique

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[POWERSHELL] Script Graphique

n°3090067
nico1705
Posté le 27-06-2013 à 12:18:46  profilanswer
 

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.

mood
Publicité
Posté le 27-06-2013 à 12:18:46  profilanswer
 

n°3090157
nico1705
Posté le 28-06-2013 à 09:16:17  profilanswer
 

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..


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  [POWERSHELL] Script Graphique

 

Sujets relatifs
Création script google earthwindows 8 avec 2 carte graphique
Script VBS qui se lance tout seulScript displayHandler
Droit au lancement d'un script par GPOScript robocopy suppression
[Excel] Modification graphique "boîte à moustache"Problème pilote graphique Nvidia
Script de mise à jour des pilotes 
Plus de sujets relatifs à : [POWERSHELL] Script Graphique


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR