powershell_messagebox

Ceci est une ancienne révision du document !


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

  • 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 OK seul.
      • 1 : OK et Annuler
      • 2 : Abandonner, Recommencer et Ignorer
      • 3 : Oui, Non et Annuler
      • 4 : Oui et Non
      • 5 : Recommencer et Annuler
    • $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 assembly
[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 messagebox
[System.Windows.Forms.MessageBox]::Show($Message, $Titre , $Type, $Icone)

Le résultat que l'on obtient est :

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/20 20:09

, 2025/12/04 15:17

merci pour ce tuto

, 2025/12/04 18:32

Si cela a pu vous être utile, j'en suis ravi.

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • powershell_messagebox.1558361393.txt.gz
  • Dernière modification : 2019/05/20 14:09
  • (modification externe)