Здравствуйте читатели блога scriptcoding.ru. В статье мы рассмотрим работу с методом Popup объекта WScript.Shell, который позволяет создавать диалоговое Popup окно.
Прежде чем приступить к программированию, давайте для начала рассмотрим общий синтаксис метода Popup.
Popup(msg, timeout, title, buttons) – Данный метод являются частью объектной модели WScript.Shell сервера Windows Script Host, и поэтому, его можно использовать как в языке JScript, так и в языке VBScript. Видим, что ему передаются следующие параметры:
msg – Данный аргумент должен содержать то сообщение, которое нужно вывести в диалоговом окне. Тут может присутствовать как строковая конструкция, переменная, так и математическое выражение.
timeout – По умолчанию, данный аргумент равен нолю. Он предназначен для задания времени, через которое произойдет закрытие Popup окна, если пользователь до этого времени сам не произведет закрытие. Значение 0 говорит, что таймаут отключен.
Title – Заголовок. Как правило, тут прописывают информацию о назначении диалогового окна, например, «Использование метода объекта wscript shell – Popup«.
Buttons – Кнопки. Тут прописываются константы, которые определяют тип и фокус, а также их количество, для языка vbscript вместо чисел, можно использовать именованные константы, также, можно их комбинировать между собой:
- vbOkOnly — OK (0).
- vbOkCancel — OK и Отмена (Cancel), (1).
- vbAbortRetryIgnore — Стоп (Abort), Повтор (Retry) и Пропустить (Ignore), (2).
- vbYesNoCancel — Да (Yes), Нет (No) и Отмена (Cancel), (3).
- vbYesNo — Да (Yes) и Нет (No), (4).
- vbRetryCancel — Повтор (Retry) и Отмена (Cancel), (5).
- vbCritical — Значок Stop Mark, (16).
- vbQuestion — Значок Question Mark, (32).
- vbExclamation — Пиктограмма Exclamation Mark, (48).
- vbInformation — Значок Information Mark, (64).
Стоит учитывать, что сам метод Popup wscript shell класса возвращает целое значение, которое определяет, какая кнопка была нажата:
- -1 – ничего не было нажато в течении промежутка времени, заданного параметром timeout.
- vbOk — OK, (1).
- vbCancel — Отмена (Cancel), (2).
- vbAbort — Стоп (Abort), (3).
- vbRetry — Повтор (Retry), (4).
- Vblgnore — Пропустить (Ignore), (5).
- vbYes — Да (Yes), (6).
- vbNo — Нет (No), (7).
Popup окно – приступаем к программированию

Хорошо, с теорией разобрались, теперь можно приступить к программированию. Для начала рассмотрим программный код на языке vbscript:
' *********************************************************** ' Метод popup ' Создание диалогового Popup окна ' pорup_okno.vbs ' ************************************************************* Option Explicit Dim msg, title, timeout, result Dim WshShell, my_msg msg = "Нажмите на кнопку" title = "Работа с методом Poрuр" ' Создаем экземпляр класса WScript.Shell Set WshShell = WScript.CreateObject("WScript.Shell") ' Выводим popup окно result = WshShell.Popup(msg, 5, title, vbOKCancel + vbInformation) ' Определяем, на что нажал пользователь Select case result case 1 my_msg = "Кликнуто на OK " & "(Код: " & result & ")" case 2 my_msg = "Кликнуто на Отмена " & "(Код: " & result & ")" case else my_msg = "Пользователь ничего не нажал " & "(Код: " & result & ")" End Select MsgBox my_msg |
И так, давайте рассмотрим подробно данный программный код. Видим, что прежде чем использовать метод Popup надо создать ссылку на объект WScript.Shell, мы сначала объявили переменную WshShell, потом, с помощью ключевого слова set сделали ссылку на нужный класс. Переменная result будет хранить код возврата метода Popup. Мы определили, параметры диалогового окна Popup, и то, что оно должно закрыться через 5 секунд. Для обработки кода возврата мы используем цикл vbscript select case, и в зависимости от результата, записываем сообщение в переменную my_msg. В самом конце сценария мы выводим сообщение с помощью функции MsgBox, так просто проще, стоит помнить, что это родная функция языка vbscript.

Хорошо, теперь рассмотрим аналогичный пример, но уже на языке jscript.
// *********************************************************** // Метод popup // Создание диалогового Popup окна // pорup_okno.js // ************************************************************* var msg, title, timeout, result1; var WshShell, my_msg1; var vbOKCancel = 1, vbInformation = 64; msg = "Нажмите на кнопку"; title = "Работа с методом Poрuр"; // Создаем экземпляр класса WScript.Shell WshShell = WScript.CreateObject("WScript.Shell"); // Выводим popup окно result1 = WshShell.Popup(msg, 5, title, vbOKCancel + vbInformation); // Определяем, на что нажал пользователь switch (result1){ case 1: my_msg1 = "Кликнуто на OK " + "(Код: " + result1 + ")"; break; case 2: my_msg1 = "Кликнуто на Отмена " + "(Код: " + result1 + ")"; break; default: my_msg1 = "Пользователь ничего не нажал " + "(Код: " + result1 + ")"; break; } WScript.Echo (my_msg1); |
Тут мы видим, поскольку язык jscript не позволяет использовать именованные константы, то мы их объявили как константы и присвоили им нужные числовые значения. Для обработки кода, который возвращает wscript shell popup метод, мы использовали цикл switch, смотрите «Урок 11 по JScript: Конструкция switch…case«. В конце, для вывода сообщения мы использовали стандартную функцию Echo сервера Windows Script Host.