Показать всплывающее окно / окно сообщения из пакетного файла Windows - PullRequest
135 голосов
/ 21 апреля 2009

Есть ли способ отобразить окно сообщения из командного файла (аналогично тому, как xmessage можно использовать из bash-скриптов в Linux)?

Ответы [ 20 ]

4 голосов
/ 21 апреля 2009

Для этого вам нужна небольшая программа, которая отображает окно сообщения и запускает его из вашего пакетного файла.

Вы можете открыть консольное окно, в котором отображается приглашение, но получить окно сообщения с графическим интерфейсом с помощью cmd.exe и только друзей невозможно, AFAIK.

3 голосов
/ 26 мая 2016
msg * /time:0 /w Hello everybody!

Это сообщение ждет до тех пор, пока не будет нажата кнопка ОК (по умолчанию оно длится всего одну минуту) и нормально работает в Windows 8.1

.
3 голосов
/ 16 июля 2012

Вы можете использовать Zenity . Zenity позволяет выполнять диалоговые окна в командной строке и сценариях оболочки. Более подробную информацию можно также найти в Википедии .

Он кроссплатформенный: установщик Windows для Windows можно найти здесь .

3 голосов
/ 21 ноября 2009

Я использую утилиту с именем msgbox.exe отсюда: http://www.paulsadowski.com/WSH/cmdprogs.htm

2 голосов
/ 19 октября 2015

Вы можете вызвать функцию DLL из user32.dll, я думаю, Что-то вроде

Rundll32.exe user32.dll, MessageBox (0, "текст", "titleText", {дополнительные флаги для самого верхнего сообщения e.t.c})

Набрав его с моего телефона, не судите меня ... в противном случае я бы связал дополнительные флаги.

2 голосов
/ 18 апреля 2017

Следуя ответу @ Fowl, вы можете улучшить его, установив тайм-аут только на 10 секунд, используя следующее:

mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"

Подробнее см. здесь .

1 голос
/ 22 июля 2012

msg * /server:127.0.0.1 Введите ваше сообщение здесь

1 голос
/ 26 августа 2015

Это приложение может сделать это, если вы преобразуете (упаковываете) свои пакетные файлы в исполняемые файлы.


  1. Простое окно сообщения

    %extd% /messagebox Title Text
    

  1. Окно сообщения об ошибке

    %extd% /messagebox  Error "Error message" 16
    
  2. Отмена Попробовать еще раз Окно сообщений

    %extd% /messagebox Title "Try again or Cancel" 5
    

4) Окно сообщений «Никогда больше не спрашивай»

%extd% /messageboxcheck Title Message 0 {73E8105A-7AD2-4335-B694-94F837A38E79}
0 голосов
/ 15 июля 2015

требуется только всплывающее окно внутри виртуальной машины, так что технически, там должен быть какой-то код, подобный:

if %machine_type% == virtual_machine then
   echo message box code
else
   continue normal installation code
0 голосов
/ 26 ноября 2016

Лучший вариант

set my_message=Hello world&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"


Описание:
lines= количество строк плюс 1
cols= количество символов в сообщении плюс 3 (однако минимальное значение должно быть 15)

Автоматический расчет cols версия:

set my_message=Hello world&& (echo %my_message%>EMPTY_FILE123 && FOR %? IN (EMPTY_FILE123 ) DO SET strlength=%~z? && del EMPTY_FILE123 ) && start cmd /c "@echo off && mode con lines=2 cols=%strlength% && echo %my_message% && pause>nul"

...