Повідомлення користувачу в cmd, nhutils

Які можливості є у командному файлі для залучення уваги користувача в разі якої-небудь події? Команди ECHO в багатьох випадках недостатньо, адже крім просто виведення тексту хотілося б:

  • «Піднімати» вікно командного файлу наверх (в сенсі Z-order, звичайно) або
  • показувати спливаюче вікно з текстом і значками, які показують серйозність події (помилка, попередження, подія)


В сучасних рішення призначеного для користувача інтерфейсу Windows повідомлення працює не так, що вікно раптово вискакує поверх всіх, перериваючи роботу користувача, а ввічливо повідомляє користувача про подію, кліпаючи значком програми або командного файлу на панелі завдань. Тому користувач може спокійно продовжити свою роботу, наприклад, закінчити якийсь документ, а потім клацнути по значку і подивитися, що ж там сталося.

Щоб підняти нагору вікно командного файлу, можна скористатися наявними можливостями WSH: готуємо скрипт activate.js. який використовує метод WshShell.AppActivate для вікна, заголовок якого передається параметром командного рядка:

Потім в командному файлі встановлюємо заголовок вікна і в потрібний момент викликаємо activate.js:

Тобто якщо командний файл виконався успішно, він тихо закривається, не відволікаючи користувача. Якщо виникла ситуація, про яку потрібно проінформувати користувача, то вікно піднімається нагору, показуючи інформацію про помилку.

Для наочності буде корисно виділити кольором інформацію про помилку.

Спливаюче повідомлення MessageBox містить текст і значок, це виглядає гарніше, ніж консольне вікно, але після його закриття користувачеві доведеться шукати вікно командного файлу вручну.

Спливаюче вікно WshShell.Popup

Цей варіант використовує можливості WSH і не вимагає установки додаткових програм.
Використовується метод WshShell.Popup в скрипті popup.js

Відповідно, командний файл викликає його в разі помилки:

Спливаюче вікно NHMB

Програма nhmb також показує спливаюче вікно, дозволяючи задавати символи перекладу рядка в параметрах (і відповідно, в командному файлі), а також відображаючи таймаут в заголовку вікна.

Повідомлення користувачу в cmd, nhutils

У заголовку вікна відображається час в секундах (55), що залишився до автоматичного закриття вікна і продовження роботи командного файлу.

Повідомлення користувачу в cmd

Схожі статті