Saltar al contenido

Cómo mostrar un Msgbox directamente desde CMD

Solución:

Como lo sugirió @wysiwyg, en las versiones Pro / Business * de Windows, está buscando el Msg mando. Está disponible en todas las versiones modernas de Windows (al menos desde XP). Para mostrar un mensaje al usuario que ha iniciado sesión actualmente, ejecute lo siguiente:

msg %username% Your message here

El resultado se ve así:
ingrese la descripción de la imagen aquí

Una consideración con este comando es que no puede personalizar el texto de la barra de título.

Puede obtener más información sobre Msg en TechNet.


* Si necesita una solución que funcione todos ediciones de Windows, incluido el hogar, en mi opinión, el método VBScript que ya conoce es la solución más simple a este problema. Funciona en todas las versiones y ediciones modernas de Windows en su configuración predeterminada y es fácil de usar.

Como han dicho otros, no hay forma de hacer esto puramente con cmd, pero aunque ese es el título de la pregunta, me parece que la parte sin archivo es más importante para usted y, en determinadas circunstancias, esto podría ser posible.

Con powershell debería ser posible ejecutar código sin ningún archivo como este:

PowerShell -Command "Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox]::Show('Hello World')"

VBS no permite la ejecución directa de código a través de cscript o wscript, pero mshta sí. Puede usarlo así (si necesita varias líneas, use ‘:’ como delimitador):

mshta vbscript:Execute("msgbox ""Hello World"":close")

Como está basado, por ejemplo, podría verse afectado por algunas restricciones de gpo, por lo que si tiene la opción, Powershell es probablemente la apuesta más segura.

Necesitaba algo similar a esto hoy. Como no pude encontrar una solución de dependencia externa que me gustara, ya que no soy realmente un fanático de VBScript / Powershell, seguí adelante y escribí una:

https://github.com/cubiclesoft/messagebox-windows

Los cuadros de mensaje que produce son modal a la ventana de la consola actual. Es decir, el usuario no puede hacer nada hasta que cierre el cuadro de diálogo. Además, el código de retorno del MessageBox() La llamada se devuelve a la persona que llama para que un script pueda reaccionar al botón que se presionó. Y, por supuesto, es compatible con la gama completa de opciones para MessageBox() API Win32.

Agregar un ejecutable de 80 KB a la mezcla podría no ser del agrado de todos. Sin embargo, está vinculado estáticamente con el tiempo de ejecución de VC ++ y es compatible con Unicode, lo que explica por qué el archivo es tan grande dada la naturaleza minimalista de lo que hace. Y hay un problema menor de no poder pasar fácilmente nuevas líneas desde la línea de comandos para mostrar mensajes de varias líneas. En una pequeña ventaja, muestra el diálogo en menos tiempo de reloj de pared que cualquiera de las otras soluciones presentadas hasta ahora.

Por supuesto, si el tamaño del archivo no importa y los diálogos crean una experiencia de usuario demasiado “en su cara” y / o no requieren la interacción del usuario, también me encontré con este ingenioso proyecto:

https://www.paralint.com/projects/notifu/

Que muestra un globo emergente en el área de notificación de estado de la pantalla usando IUserNotification. La desventaja es que el ejecutable de Notifu se ejecuta apenas por debajo de los 240KB. Otro ejemplo desafortunado de que COM crea una hinchazón innecesaria y me deja deseando que hubiera una API simple y liviana para la función.

Para algo multiplataforma, hay zenity. Es principalmente para Linux, pero también hay puertos para Mac y Windows. El puerto de Windows de zenity tiene más de 1 MB de tamaño porque, bueno, GTK está bastante hinchado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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