Simplicity can be elegant. Powershell has a nice feature that simplifies the use of enumerated values. MessageBox uses several enumeratied inputs. Rather than try and explain it, review the few lines of code. The script is written so that Intellisense is enabled when calling it.

 

PowerShell
Edit|Remove
############################################################################ 
#.SYNOPSIS 
# Displays a messagebox and returns a value for the key pressed 
# 
#.PARAMETER Message 
# Text to display in the messagebox 
# 
#.PARAMETER Title 
# Title for the messagebox (default is an empty string) 
# 
#.PARAMETER Type 
# One of the following values (default is Ok):  
# Ok, OkCancel, AbortRetryIgnore, YesNoCancel, YesNo,' RetryCancel 
# 
#.PARAMETER Icon 
# One of the following values (default is None): 
# None, Stop, Question, Warning, Information 
# 
#.OUTPUTS  
# Returns the text of the button pressed: 
# Ok, Cancel, Yes, No, Retry, Abort or Ignore 
############################################################################ 
function Show-MessageBox 
{ 
    Param([Parameter(Position=1,Mandatory=$true)][string]$Message,  
          [string]$Title="",  
          [ValidateSet('Ok','OkCancel','AbortRetryIgnore','YesNoCancel','YesNo','RetryCancel')][string]$Type='Ok',  
          [ValidateSet('None','Stop','Question','Warning','Information')][string]$Icon='None') 
    Add-Type -AssemblyName System.Windows.Forms 
    [System.Windows.Forms.MessageBox]::Show($Message$Title$Type$Icon) 
} 
 PS> Show-MessageBox 'Would you like to play a game?' -Type Yesno -Icon Question