Как закрыть программу без появления дополнительных окон
Возникла новая проблема с программой из старого вопроса. Как сделать так, чтобы при закрытии программы на крестик она действительно закрывалась, вместо того, чтобы выдавать окно: "ОТ 1 ДО 13!", желательно без подключения дополнительных библиотек и прочего, просто vbscript код, заранее спасибо!
Код (с учётом прошлых поправок):
x = inputbox("Введите число от 1 до 13:")
if (x > 13) or (x < 1) then
msgbox "ОТ 1 ДО 13!", 16, "Ошибка"
else
msgbox "Вау, твоё число - " & x, 48, "Ы"
end if
Ответы (2 шт):
Просто добавьте проверку на пустую строку
x = inputbox("Введите число от 1 до 13:")
if x<>"" then
if (x > 13) or (x < 1) then
msgbox "ОТ 1 ДО 13!", 16, "Ошибка"
else
msgbox "Вау, твоё число - " & x, 48, "Ы"
end if
end if
В этом ответе я бы хотел объяснить, почему так происходит.
Что происходит на данный момент?
Если пользователь нажимает на крестик (или на кнопку "отмена") в inputbox, то значение переменной, в которую записывается значение, будет равно "", то есть пустой строке. Переменной же надо дать какое-то значение.
Крестик на окне - это не прерывание скрипта, а лишь закрытие конкретного окна. После закрытия окна скрипт продолжает выполняться. Дальше у вас идёт проверка на то, что число попадает в диапазон. "" - это не число от 1 до 13, вот у вас и выскакивает окно с надписью:
ОТ 1 ДО 13!
Как решить проблему?
Решение уже предложил @Алексей Р, повторяться не буду. Проверьте, что строка не пустая и только тогда показывайте ваши окна.