Программа MB показывает стандартное системное окно сообщения (MessageBox). Программа была разработана для более удобного использования командных файлов — чтобы запросы командных файлов на выбор или подтверждение действия были заметны пользователю, а сам способ выбора был привычным для обычного пользователя, как правило, плохо знакомого с командными файлами. Также в программу был добавлен таймер для выполнения действия, назначенного по умолчанию, если пользователь не сделал никакого выбора.

Программа позволяет задать все стандартные типы значков (информация, вопрос, предупреждение, ошибка) и комбинации кнопок (ОК, ОК/Отмена, Да/Нет и т.д.).

По завершении программа возвращает код нажатой кнопки (IDOK и т.д.), по которому командный файл выполняет те или иные команды.

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

Загрузка nhmb

nhmb-1.1.2.zip

Программа не требует установки, работает в Windows XP SP3 и старше.

Вывод сообщения в nhmb

Сообщение-информация с текстом Архивирование выполнено и заголовком Архивирование:

nhmb "Архивирование выполнено" Архивирование Information

Первый параметр задает текст сообщения и заключен в кавычки, т.к. содержит пробелы. Если требуется вставить символы форматирования, следует использовать \n для перевода строки и \t для табуляции.

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

Третий параметр указывает, что должен быть использован значок Information и кнопка OK.

Так как не задано время ожидания, программа не завершится до тех пор, пока пользователь не нажмет на кнопку.

Вопрос с тайм-аутом в nhmb

Сообщение-вопрос Доступ к базе данных будет закрыт. Продолжить? с кнопками Да/Нет и тайм-аутом 3 минуты:

nhmb "Доступ к базе данных будет закрыт. Продолжить?" "Подтвердите запуск" ^
"Question|YesNo|DefButton2" 180
 Третий параметр задает значок-вопрос и кнопки Да/Нет, причем кнопка Нет будет кнопкой по умолчанию.

Четвертый параметр задает время ожидания 3 минуты (180 секунд). В заголовке окна будет идти отсчет оставшегося времени. Если пользователь нажмет Да или Нет, то программа вернет соответственно IDYES или IDNO. Если пользователь не в течение трех минут не нажмет никакую кнопку, то программа закроется сама и вернет IDNO.

Обработка кода нажатой кнопки

Обработка кода нажатой кнопки заключается в сравнении кода возврата с кодами IDOK, IDCANCEL и т.д. (их численные значения указаны в справке программы). Для предыдущего примера можно написать следующий командный файл:

nhmb "Доступ к базе данных будет закрыт. Продолжить?" "Подтвердите запуск" ^
 "Question|YesNo|DefButton2" 180
if errorlevel 7 goto End
if errorlevel 6 goto Begin
goto End
:Begin
rem Собственно действия с базой данных...
:End

Командный файл сравнивает результат выполнения сначала с кодом IDNO (значение 7), затем IDYES (значение 6) и передает управление соответственно на завершение файла или на выполнение действий с базой данных.

nhmb: 7 комментариев

  • 28.06.2016 в 15:08
    Постоянная ссылка

    Спасибо за программу!
    Есть предложение добавить в программу несколько звуков с регулировкой их длительности и выводом на динамики (не на встроенную «пищалку», т.к. у многих современных ПК она отсутствует) .
    Средствами CMD этого не добиться :(

    Ответить
    • 30.06.2016 в 06:05
      Постоянная ссылка

      Есть же стандартные звуки, которые проигрываются при открытии окна сообщения, они настраиваются в панели управления (восклицание, вопрос и т.д.), или вопрос о чем-то другом?

      Ответить
  • 09.01.2016 в 19:56
    Постоянная ссылка

    Спасибо! Есть предложение, при возможности, добавить параметр времени неактивности кнопок — т.е., если в момент появления окна будет случайно нажата клавиша enter или пробел, это не привело к ошибочному выбору до прочтения сообщения (как, например, в Firefox, при загрузке файла, нельзя сразу же нажать OK).

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *