Powershell, créer une interface graphique GUI, system.windows.forms

Comment créer une interface graphique, une windows form en commande powershell ?

Je vous présente ici un tutoriel pour créer et comprendre comment créer une interface graphique

A la différence avec d’autre langage tel le C ou le C#, powershell, notamment powershell ISE (par défaut sur votre OS) ne vous permet de créer simplement une interface graphique (GUI) avec un menu d’outil (panel d’outil) dédié à la création graphique. Néanmoins, on à toujours la possibilité d’en créer directement grâce à certaine fonctionnalité tel que System.Windows.Forms et System.Drawing.

Dans cet article, je vais vous montrer la base. C’est à dire, comment créer un bouton, comment créer une textbox, comment ajouter une ajouter sur le bouton, comment afficher le résultat dans la textbox, comment vider (clear) une textbox…

Le code ci-dessous devra représenter l’exemple d’une interface graphique en powershell (windows.forms)

le code complet du tutoriel powershell et quelques annotations :

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

#creation de la fenetre, la form
$Form = New-Object system.Windows.Forms.Form
$Form.Size = New-Object System.Drawing.Size(200,200) #la taille de la form, X , Y
$Form.Text = "test forme"

#creation d'un bouton Afficher
$BT0 = New-Object System.Windows.Forms.Button
$BT0.Location = New-Object System.Drawing.Point(10,10) #la position de la forme, coordonnée x, y
$BT0.text = "Afficher" #le nom afficher dans le bouton
$BT0.add_click($BT0_click) #quand on click, on déclanche l'action $BT0_click voir plus bas
$Form.Controls.add($BT0) #on ajoute le bouton dans la form

#creation d'un bouton pour vider la text_box
$BTclear = New-Object System.Windows.Forms.Button
$BTclear.Location = New-Object System.Drawing.Point(100,10) #la position de la forme, coordonnée x, y
$BTclear.text = "Clear text" #le nom afficher dans le bouton
$BTclear.add_click($BT_clear) #quand on click, on déclenche l'action $BT_clear voir plus bas
$Form.Controls.add($BTclear) #on ajoute le bouton dans la form

#creation d'un label
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,40) 
$label.Size = New-Object System.Drawing.Size(100,20) 
$label.Text = 'ceci est un label :' 
$form.Controls.Add($label)

#creation d'une textbox
$text_box = New-Object System.Windows.Forms.TextBox
$text_box.Location = New-Object System.Drawing.Point(10,80) 
$text_box.Size = New-Object System.Drawing.Size(100,100) 
$Form.Controls.Add($text_box)


$form.startposition ="CenterScreen" #sera affiché au milieu de l'écran
$Form.ShowDialog() #affiche la fenetre

#mon action du click sur le bouton 
$BT0_click = {$text_box.text += ("mon message :)")}
$BT_clear = {$text_box.Clear()}

 

J’espère que vous avez compris et que vous allez réussir vos propres interface 🙂

Laisser un commentaire