# encoding: ascii # api: powershell # title: VB MsgBox Powershell # description: This is an advanced function I found that I’ve been using as a Show-Msgbox Function. Enjoy :) # version: 0.1 # type: script # author: Dyspareunia # license: CC0 # function: Show-MsgBox # x-poshcode-id: 3419 # x-archived: 2014-03-19T08:49:22 # x-published: 2014-05-20T16:18:00 # # <# .SYNOPSIS Shows a graphical message box, with various prompt types available. .DESCRIPTION Emulates the Visual Basic MsgBox function. It takes four parameters, of which only the prompt is mandatory .INPUTS The parameters are:- Prompt (mandatory): Text string that you wish to display Title (optional): The title that appears on the message box Icon (optional). Available options are: Information, Question, Critical, Exclamation (not case sensitive) BoxType (optional). Available options are: OKOnly, OkCancel, AbortRetryIgnore, YesNoCancel, YesNo, RetryCancel (not case sensitive) DefaultButton (optional). Available options are: 1, 2, 3 .OUTPUTS Microsoft.VisualBasic.MsgBoxResult .EXAMPLE C:\PS> Show-MsgBox Hello Shows a popup message with the text "Hello", and the default box, icon and defaultbutton settings. .EXAMPLE C:\PS> Show-MsgBox -Prompt "This is the prompt" -Title "This Is The Title" -Icon Critical -BoxType YesNo -DefaultButton 2 Shows a popup with the parameter as supplied. .LINK http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.msgboxresult.aspx .LINK http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.msgboxstyle.aspx #> # By BigTeddy August 24, 2011 # http://social.technet.microsoft.com/profile/bigteddy/. function Show-MsgBox { [CmdletBinding()] param( [Parameter(Position=0, Mandatory=$true)] [string]$Prompt, [Parameter(Position=1, Mandatory=$false)] [string]$Title ="", [Parameter(Position=2, Mandatory=$false)] [ValidateSet("Information", "Question", "Critical", "Exclamation")] [string]$Icon ="Information", [Parameter(Position=3, Mandatory=$false)] [ValidateSet("OKOnly", "OKCancel", "AbortRetryIgnore", "YesNoCancel", "YesNo", "RetryCancel")] [string]$BoxType ="OkOnly", [Parameter(Position=4, Mandatory=$false)] [ValidateSet(1,2,3)] [int]$DefaultButton = 1 ) [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null switch ($Icon) { "Question" {$vb_icon = [microsoft.visualbasic.msgboxstyle]::Question } "Critical" {$vb_icon = [microsoft.visualbasic.msgboxstyle]::Critical} "Exclamation" {$vb_icon = [microsoft.visualbasic.msgboxstyle]::Exclamation} "Information" {$vb_icon = [microsoft.visualbasic.msgboxstyle]::Information}} switch ($BoxType) { "OKOnly" {$vb_box = [microsoft.visualbasic.msgboxstyle]::OKOnly} "OKCancel" {$vb_box = [microsoft.visualbasic.msgboxstyle]::OkCancel} "AbortRetryIgnore" {$vb_box = [microsoft.visualbasic.msgboxstyle]::AbortRetryIgnore} "YesNoCancel" {$vb_box = [microsoft.visualbasic.msgboxstyle]::YesNoCancel} "YesNo" {$vb_box = [microsoft.visualbasic.msgboxstyle]::YesNo} "RetryCancel" {$vb_box = [microsoft.visualbasic.msgboxstyle]::RetryCancel}} switch ($Defaultbutton) { 1 {$vb_defaultbutton = [microsoft.visualbasic.msgboxstyle]::DefaultButton1} 2 {$vb_defaultbutton = [microsoft.visualbasic.msgboxstyle]::DefaultButton2} 3 {$vb_defaultbutton = [microsoft.visualbasic.msgboxstyle]::DefaultButton3}} $popuptype = $vb_icon -bor $vb_box -bor $vb_defaultbutton $ans = [Microsoft.VisualBasic.Interaction]::MsgBox($prompt,$popuptype,$title) return $ans } #end function