Мені було потрібно щось подібне сьогодні. Оскільки я не зміг знайти рішення зовнішньої залежності, яке мені сподобалось, оскільки я насправді не фанат VBScript / Powershell, я пішов вперед і написав таке:
https://github.com/cubiclesoft/messagebox-windows
Поле повідомлень, яке воно створює, є модальним до поточного вікна консолі. Тобто користувач нічого не може зробити, поки не закриє діалогове вікно. Також код повернення з MessageBox()
виклику повертається абоненту, щоб сценарій міг реагувати на ту кнопку, яку було натиснуто. І, звичайно, він підтримує повний спектр варіантів MessageBox()
API Win32.
Додавання виконуваної суміші в 80 Кб може бути не всім чашкою чаю. Він статично пов’язаний із програмою VC ++, хоча він підтримує Unicode, що пояснює, чому файл настільки великий, враховуючи мінімалістичний характер того, що він робить. І є незначна проблема того, що неможливо легко перейти в нові рядки з командного рядка для відображення багаторядкових повідомлень. На незначній стороні вгору він відображає діалог за менший час настінного годинника, ніж будь-яке інше рішення, представлене до цього часу.
Звичайно, якщо розмір файлу не має значення і діалоги створюють занадто "в обличчя" користувальницьку роботу та / або не потребують взаємодії з користувачем, я також наткнувся на цей чудовий проект:
https://www.paralint.com/projects/notifu/
Який відображає спливаючу кулю в області сповіщення про стан екрану за допомогою IUserNotification . Недоліком є те, що виконуваний файл Notifu працює просто сором'язливо в 240 КБ. Ще один прикрий приклад того, що COM створює непотрібний наліт і залишає мене бажаючи, щоб для цієї функції був простий, легкий API.
Щось крос-платформне, є зен. Це здебільшого для Linux, але є й порти для Mac та Windows. Порт Windows зенності розміром понад 1 Мб, тому що, ну, GTK досить роздутий.
msg
команду. Можливо, у вас його немає, якщо ви працюєте з домашньою версією Windows, але ви можете додати її, просто скопіювавши та вставивши msg.exe з інсталяції Pro.