Мне нужно что-то похожее на это сегодня. Так как я не смог найти решение для внешних зависимостей, которое мне понравилось, так как я на самом деле не фанат VBScript / Powershell, я решил написать следующее:
https://github.com/cubiclesoft/messagebox-windows
Окна сообщений, которые он создает, являются модальными для текущего окна консоли. То есть пользователь не может ничего сделать, пока не закроет диалог. Кроме того, код возврата от MessageBox()
вызова возвращается вызывающей стороне, чтобы скрипт мог реагировать на нажатие любой кнопки. И, конечно же, он поддерживает полный набор параметров MessageBox()
Win32 API.
Добавление исполняемого файла размером 80 КБ может не быть чашей чая для всех. Тем не менее, он статически связан с средой выполнения VC ++ и поддерживает Unicode, что объясняет, почему файл такой большой, учитывая минималистический характер его работы. Кроме того, существует небольшая проблема, заключающаяся в невозможности простого перехода на новые строки из командной строки для отображения многострочных сообщений. С другой стороны, он отображает диалоговое окно за меньшее время, чем любое другое решение, представленное до сих пор.
Конечно, если размер файла не имеет значения, а диалоги создают слишком «пользовательский» интерфейс и / или не требуют взаимодействия с пользователем, я также столкнулся с этим изящным проектом:
https://www.paralint.com/projects/notifu/
Который отображает всплывающую подсказку в области уведомлений о состоянии экрана с помощью IUserNotification . Недостатком является то, что исполняемый файл Notifu работает всего лишь 240 КБ. Еще один прискорбный пример того, что COM создает ненужный раздув и оставляет меня желать, чтобы был простой и легкий API для этой функции.
Для чего-то кроссплатформенного есть zenity. В основном это для Linux, но есть порты Mac и Windows. Размер Windows-порта zenity превышает 1 МБ, потому что GTK довольно раздутый.
msg
команду. У вас может не быть этого, если вы используете домашнюю версию Windows, но вы можете добавить ее, просто скопировав и вставив msg.exe из установки Pro.