Updated : Dic 22, 2019 in Powershell

Como crear caja de dialogo (message box) en powershell

Powershell sin duda alguna cuenta con una cantidad infinita de posibilidad debido en parte a su comunidad y flexibilidad al momento de trabajar. Por eso hoy le voy a mostrar un método para realizar una caja de dialogo conocida como message box.

Powershell no cuenta con la capacidad de realizar cajas de dialogo de forma nativa, por ende deberemos realizar una invocación al objecto System.Windows.MessageBox mediante el método show().

[System.Windows.MessageBox]::Show('Hola mundo')

Para utilizarlo deberán remplazar todo lo que este dentro de las comillas.

Podemos personalizar nuestro mensaje en pantalla agregando botones y titulo de ventana de la siguiente manera.

[System.Windows.MessageBox]::Show('Contenido','Titulo de la ventana','OkCancel')

Hay diferente tipo de botones para utilizar aquí una lista de los botones básicos.

Lista de botones

  • OK
  • OKCancel
  • YesNo
  • YesNoCancel

Método opcional

El segundo método es mediante subsistema de script de Windows ( Wscript ) de PowerShell. invocando el método PopUp().

$wshell = New-Object -ComObject Wscript.Shell
$salida= $wshell.Popup("Hola mundo")

Lista de botones

  • 0 – botón OK;
  • 1 – Botones OK y Cancelar;
  • 2 – Botones Stop, Retry y Skip;
  • 3: botones Sí, No y Cancelar;
  • 4 – Sí y no botones;
  • 5 – Reintentar y cancelar botones;
  • 16 – Icono de parada;
  • 32 – Icono de pregunta;
  • 48 – Icono de exclamación;
  • 64 – Icono de información.

Capturar que botón presiono el usuario

También podemos capturar que botón presionar el usuario . Aquí le dejo un sencillo script como ejemplo.

Capturar botón con condicional IF

$btn = [System.Windows.MessageBox]::Show('Contenido','Titulo de la ventana','OkCancel')
 if($btn -eq "Ok"){
 
 Write-Host "Ejecuto esto si seleciono el boton aceptar"
 }else{
 
  Write-Host "Falta Error"
 }

Capturar botón con condicional switch

$btn =  [System.Windows.MessageBox]::Show('Contenido','Titulo de la ventana','YesNoCancel','Error')

  switch  ($btn) {

  'Yes' {

  Write-Host "El usuario presiono el boton Yes"

  }

  'No' {

Write-Host "El usuario presiono el boton No"

  }

  'Cancel' {

 Write-Host "El usuario presiono el boton Cancel"

  }

  }

Para realizar este proceso con el método PopUp deberemos capturar la salida numérica.

  • -1 – tiempo de espera;
  • 1 – botón Aceptar;
  • 2 – Botón de cancelar;
  • 3 – Botón de parada;
  • 4 – Botón de reintento;
  • 5 – Botón de salto;
  • 6 – Botón Sí;
  • 7 – Sin botón.

Capturar botón con condicional IF

$wshell = New-Object -ComObject Wscript.Shell
$salida= $wshell.Popup("Contenido")


if($salida -eq 1){
Write-Host "El usuario presiono el boton aceptar"
}else{
Write-Host "Fatal error"

}

Capturar botón con condicional switch

$wshell = New-Object -ComObject Wscript.Shell
$salida= $wshell.Popup("Contenido")


 switch  ($salida) {

  '1' {

  Write-Host "El usuario presiono el boton aceptar"

  }

  }

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.