Accueil
» WINDOWS
»
Comment afficher une boîte de message sous Windows 10 (PowerShell et Batch)
Comment afficher une boîte de message sous Windows 10 (PowerShell et Batch)
Pour afficher une boîte de message personnalisée sous Windows 10 , appelez la méthode intégrée Windows Forms MessageBox.Showdepuis Windows PowerShell. Exécutez-la une fois depuis un terminal ou enregistrez-la dans un fichier réutilisable .bat. .ps1Aucun compte administrateur n'est requis dans votre session de bureau.
Une boîte de message est une fenêtre modale qui reste ouverte jusqu'à sa fermeture et peut bloquer toute interaction avec son propriétaire. Elle diffère d'une notification toast. La documentation de la méthode MessageBox.Show de Microsoft répertorie les arguments suivants : message, légende, bouton et icône.
Choisissez comment afficher le message
Dialogue ponctuel : exécuter une courte commande dans PowerShell.
Exécutez-le depuis l'invite de commandes : démarrez Windows PowerShell avec powershell.exe.
Réutilisez-le ultérieurement : enregistrez la commande sous forme de fichier batch ou de script PowerShell.
Les exemples utilisent Windows PowerShell et l' System.Windows.Formsassembly disponible sous Windows. La commande charge cet assembly, puis spécifie le message, le titre, le bouton OK et l'icône d'information.
Créer un fichier batch réutilisable
Ouvrez le Bloc-notes depuis le menu Démarrer. Un document vierge suffit pour ce court script.Ouvrez un document Bloc-notes vierge avant de saisir le script.
Le fichier batch lance PowerShell sans charger de profil.
Modifiez Backup complete.le texte et Backup statusle titre selon vos besoins. Conservez les guillemets simples autour des deux chaînes de caractères. Les valeurs explicites du bouton et de l'icône rendent la boîte de dialogue prévisible ; [void]la valeur de retour de la méthode est ignorée car cet exemple nécessite uniquement l'affichage de la boîte.Définissez le message et le titre dans l'appel MessageBox.Show.
Choisissez Fichier > Enregistrer sous . Saisissez ShowMessage.batle nom du fichier et sélectionnez Tous les fichiers comme type, puis enregistrez-le dans un emplacement facile d'accès, comme le Bureau. Si vous laissez le type sur document texte, le Bloc-notes risque de l'enregistrer sous ShowMessage.bat.txtun autre nom.Enregistrez le fichier avec l'extension .bat et choisissez « Tous les fichiers ».
Ouvrez le fichier enregistré ShowMessage.bat. Une boîte de dialogue apparaît ; cliquez sur OK pour la fermer.Exécutez le fichier batch enregistré depuis l'explorateur de fichiers.La boîte de dialogue personnalisée reste ouverte jusqu'à ce que l'utilisateur sélectionne OK.
Étant donné que le fichier batch imbrique PowerShell à l'intérieur d'une commande entre guillemets, veillez à ce que le texte reste simple et évitez les guillemets doubles dans le message et le titre.
Exécutez la commande directement dans PowerShell
Ouvrez Windows PowerShell depuis le menu Démarrer.Ouvrez Windows PowerShell pour exécuter une commande ponctuelle.
Collez la commande suivante et appuyez sur Entrée :
Chargez Windows Forms, puis appelez MessageBox.Show.
Cliquez sur OK lorsque la boîte de dialogue apparaît.La commande PowerShell affiche le message demandé.
Pour créer un script PowerShell réutilisable, enregistrez les deux lignes PowerShell ci-dessus dans le Bloc-notes ShowMessage.ps1, en sélectionnant « Tous les fichiers » . Exécutez une copie sur le Bureau avec la & "$env:USERPROFILE\Desktop\ShowMessage.ps1"commande appropriée. Si une stratégie d'exécution bloque le script, utilisez la commande intégrée ou le fichier batch plutôt que de modifier une stratégie globale. Consultez la documentation Microsoft relative à la commande Add-Type .
Afficher un message de l'invite de commandes
Dans l'invite de commandes , collez cette commande (une seule ligne) et appuyez sur Entrée . Elle lance Windows PowerShell et lui transmet le code de dialogue :
L'invite de commandes peut transmettre le même appel de dialogue à PowerShell.
La boîte de dialogue s'affiche par-dessus le bureau ; fermez-la en cliquant sur OK , puis l'invite de commandes revient à son affichage initial. Cette option lance PowerShell sans charger le profil utilisateur, comme décrit dans la documentation de référence de la ligne de commande Windows PowerShell-NoProfile de Microsoft .
Fermez la boîte de dialogue pour revenir à l'invite de commandes.
Utilisez les boutons Oui et Non
Pour poser une question, modifiez les arguments du bouton et de l'icône, puis vérifiez le résultat. La méthode renvoie une réponse DialogResult, ce qui permet à votre script d'effectuer une action différente selon la réponse.
$answer = [System.Windows.Forms.MessageBox]::Show('Continue with cleanup?', 'Confirm action', [System.Windows.Forms.MessageBoxButtons]::YesNo, [System.Windows.Forms.MessageBoxIcon]::Question)
if ($answer -eq [System.Windows.Forms.DialogResult]::Yes) { 'Continue with cleanup' } else { 'Cancelled' }
Utilisez Oui et Non lorsque le script nécessite une décision de l'utilisateur.
Dans PowerShell, les chaînes de caractères entre guillemets simples sont interprétées littéralement. Si votre message contient une apostrophe, doublez-la à l'intérieur de la chaîne (par exemple : « apostrophe'Don''t close this window' »). Consultez les règles de guillemets de Microsoft pour PowerShell . Pour une commande batch, évitez également les guillemets doubles à l'intérieur du message, car la commande est imbriquée dans un -Commandargument entre guillemets.
Si la boîte de message ne s'affiche pas
Vérifiez que le fichier se termine par . .batou .ps1. et non par .txt.
Exécutez-le dans une session de bureau connectée ; un service ou un processus non interactif peut ne pas afficher d’interface utilisateur dans ce cas.
Utilisez Alt+Tab si la boîte de dialogue risque de se trouver derrière une autre fenêtre.
Si un script enregistré échoue, essayez la commande en ligne pour isoler les erreurs de nom de fichier ou de guillemets.
Si vous souhaitez simplement un rappel qui ne doit pas interrompre la tâche en cours, utilisez une notification Windows plutôt que cette boîte de dialogue modale. Pour une simple fenêtre contextuelle personnalisée nécessitant une confirmation, la méthode PowerShell décrite ci-dessus est la solution la plus rapide.