Ceci est une ancienne révision du document !
~~CLOSETOC~~
Afficher des boîtes de dialogues
Lors de l'execution d'un script, les différents messages s'affichent dans la console. Cependant, il peut arriver que l'on souhaite afficher une boîte de dialogue pour afficher un message précis ou avertir d'une erreur. Les bibliothèque systèmes Windows offre cette possibilité.
Comment faire ?
- On commence par charger la bibliothèque nécessaire :
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
- Ensuite, nous avons besoin de déterminer 4 variables :
- $Message : la seule variable réellement obligatoire. Elle stocke le message affiché dans le corps de la boîte de dialogue.
- $Titre : On indique avec cette variable le titre de la boîte de dialogue.
- $Type On indique grâce à un chiffre le type de boîte de dialogue souhaité, représenté par les différents boutons présents. On trouvera comme choix possibles :
- 0 : Bouton
OKseul. - 1 :
OKetAnnuler - 2 :
Abandonner,RecommenceretIgnorer - 3 :
Oui,NonetAnnuler - 4 :
OuietNon - 5 :
RecommenceretAnnuler
- $Icone : Cette variable indique l'icône que l'on souhaite afficher dans la boîte de dialogue. On a le choix entre :
- 0 : Aucune.
- 16 : Erreur (croix blanche dans cercle rouge).
- 32 : Question (point d'interrogation blanc dans cercle bleu).
- 48 : Avertissement (point d'exclamation noir dans triangle jaune).
- 64 : Information (i blanc dans cercle bleu).
- Cela nous donne donc les déclarations suivantes :
$Message = "C'est sympa, non?" $Titre = "ShyrkaSystem" $Type = 4 $Icone = 32
- Il nous reste plus qu'à affiché la boîte de dialogue :
[System.Windows.Forms.MessageBox]::Show($Message, $Titre , $Type, $Icone)
Code complet :
# Chargement des bibliothèques
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# Déclarations des variables
$Message = "C'est sympa, non?"
$Titre = "ShyrkaSystem"
$Type = 4
$Icone = 32
# Chargement de la boîte de dialogue
[System.Windows.Forms.MessageBox]::Show($Message, $Titre , $Type, $Icone)
Interprétation des retours
En cliquant sur un bouton, la boîte de dialogue se ferme et renvoie dans la console le nom du bouton (en anglais). Ainsi, il est possible de stocker cette information dans une variable :
$MessageBox = [System.Windows.Forms.MessageBox]::Show($Message, $Titre , $Type, $Icone)
On peut aussi rappeler cette information directement après la ligne d'appel grâce à la variable système $_.
— Nicolas THOREZ 2019/05/19 12:09

Discussion
merci pour ce tuto
Si cela a pu vous être utile, j'en suis ravi.