[PowerShell] Message Box
PowerShell permet d’accéder au classes offertes par .Net. Il est donc relativement facile de créer des ‘Windows Forms’ via un simple script. vous pouvez retrouver mes articles précédents sur ce lien ou encore celui-ci.
Pour plus d’information sur l’espace de nom ‘System.Windows.Forms’: Site MSDN
Voyons comment créer simplement un message box dans PowerShell. Dans l’ordre pour travailler avec les ‘Windows Forms’ dans PowerShell, il suffit de respecter les quelques étapes ci-dessous:
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$MaMsgBox = [Windows.Forms.MessageBox] #Placé dans une variable
[void]: Permet de définir que le chargement se fera sans en silence (peut-être remplacé par un pipe |Out-Null
LoadWithPartialName: Attention elle est obsolète et est remplacé par Load() voir le site MSDN
- Définir Le message, l’icone, les boutons et le titre
$Monbouton=[Windows.Forms.MessageBoxButtons]::OK
| Voici les options possibles pour les boutons |
|
$Monicon=[windows.forms.MessageBoxIcon]::Information
| Voici les Options possibles pour l’icone: |
 |
$MaMsgBox::show("Mon Message","Ma Message Box",$Monbouton,$Monicon)

- Et maintenant, comment gérer la réponse sur une Message Box avec ‘Oui’ ‘Non’ ?
Petit exemple simple:
#Chargement des Assembly
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")|Out-Null
#------------------------
#Définition de la Boite de dialogue
$MaMsgBox = [Windows.Forms.MessageBox]
$Monbouton=[Windows.Forms.MessageBoxButtons]::YesNo
$Monicon=[windows.forms.MessageBoxIcon]::Information
#--------------------------
#Affichage de la boite de dialogue
$click = $MaMsgBox::show("Mon Message","Ma Message Box",$Monbouton,$Monicon)
#--------------------------
#L'utilisateur à t'il cliqué sur OUI
if ($click -eq [Windows.Forms.DialogResult]::Yes)
{
#Le choix de l'utilisateur est OUI
#Affiche une autre boite de dialogue avec le résultat de son choix
$MaMsgBoxYes = [Windows.Forms.MessageBox]
$MonboutonYes=[Windows.Forms.MessageBoxButtons]::Ok
$MoniconYes=[windows.forms.MessageBoxIcon]::Information
$MaMsgBoxYes::show("Vous voulez dire $click","Click sur OUI",$MonboutonYes,$MoniconYes)
#----------------------------------
}
else
{
#Le choix de l'utilisateur n'est pas OUI
#Affiche une autre boite de dialogue avec le résultat de son choix
$MaMsgBoxNo = [Windows.Forms.MessageBox]
$MonboutonNo=[Windows.Forms.MessageBoxButtons]::Ok
$MoniconNo=[windows.forms.MessageBoxIcon]::Information
$MaMsgBoxNo::show("Vous voulez dire $click","Click sur Non",$MonboutonNo,$MoniconNo)
#----------------------------------
}
Volia le résultat en image: