"добавлена!",0, "Записная книжка",vbInformation+vbOkOnly);
}
}
//Запускаем основную функцию
Main();
Итак, у нас теперь имеется многозадачный WS-файл PhoneBook.wsf, обеспечивающий необходимую функциональность для работы с записной книжкой, и следующая задача состоит в организации более или менее удобного диалога с пользователем для запуска заданий из этого файла.
Обработка параметров командной строки
Самый простой вариант организовать диалог с пользователем состоит в использовании параметров командной строки. Напомним, что объектная модель WSH предоставляет несколько методов, которые позволяют производить анализ именных и безымянных параметров (см. разд. "Работа с параметрами командной строки сценария" главы 2), с которыми был запущен сценарий, а в схеме WS XML есть несколько специальных элементов ( , < named>
, , и ), предназначенных для быстрого создания встроенной справки, описывающей синтаксис сценария и смысл каждого из параметров.
Для нашего примера мы создадим сценарий ArgMenu.wsf, в котором будем анализировать аргументы командной строки и в зависимости от них запускать то или иное задание из файла PhoneBook.wsf. Названия и назначения именных параметров, которые мы будем использовать, приведены в табл. 7.1.
Таблица 7.1.Параметры командной строки сценария для работы с записной книжкой
Название параметра |
Назначение |
/L |
Просмотр всех записей книжки (сортировка по фамилии) |
/F |
Поиск записей по фамилии, которая вводится в диалоговом окне |
/А |
Добавление записи по фамилии (данные вводятся в диалоговом окне) |
/D |
Удаление записи (фамилия для удаления вводится в диалоговом окне) |
Если запустить сценарий ArgMenu.wsf вообще без параметров, либо с параметрами, не указанными в табл. 7.1, то на экран будет выведена встроенная справка (рис. 7.1).
Рис. 7.1.Встроенная справка для сценария ArgMenu.wsf
В листинге 7.4 приводится полный текст сценария ArgMenu.wsf.
Листинг 7.4. Обработка параметров командной строки сценария для работы с записной книжкой
Сценарий для работы с телефонной книжкой
var WshShell;
WshShell=WScript.CreateObject("WScript.Shell");
if ((WScript.Arguments.Named.Exists("L")) ||
(WScript.Arguments.Named.Exists("l"))) {
WshShell.Run("wscript PhoneBook.wsf //Job:SortName");
WScript.Quit();
}
if ((WScript.Arguments.Named.Exists("F")) ||
(WScript.Arguments.Named.Exists("f"))) {
WshShell.Run("wscript PhoneBook.wsf //Job:FindName");
WScript.Quit();
}
if ((WScript.Arguments.Named.Exists("A")) ||
(WScript.Arguments.Named.Exists("a"))) {
WshShell.Run("wscript PhoneBook.wsf //Job:AddRec");
WScript.Quit();
}
if ((WScript.Arguments.Named.Exists("D")) ||
(WScript.Arguments.Named.Exists("d"))) {
WshShell.Run("wscript PhoneBook.wsf //Job:DelRec");
WScript.Quit();
}
//Ни один из нужных аргументов не был указан, выводим
//описание параметров
WScript.Arguments.ShowUsage();
Теперь, если понадобится ввести дополнительную функцию при работе с записной книжкой (например, поиск по номеру телефона), нужно будет в файл PhoneBook.wsf добавить задание с новым идентификатором, а в файл ArgMenu.wsf — обработку нового параметра командной строки.
Организация диалога с помощью кнопочного меню
Вторым вариантом организации диалога, который мы рассмотрим, является кнопочное (командное) меню. Принцип его работы в нашем примере остается практически тем же, что и при описанной выше обработке аргументов командной строки — пользователь должен в диалоговом окне ввести символ, соответствующий одной из описанных в этом окне команд (рис. 7.2). Этот символ анализируется в сценарии, и в зависимости от его значения вызывается то или иное задание из файла PhoneBook.wsf.
Рис. 7.2.Кнопочное меню для работы с записной книжкой
Диалоговое окно, показанное на рис. 7.2, выводится в цикле while
, в котором с помощью оператора switch
анализируется введенный пользователем символ. Выход из цикла совершается, если введенный символ совпадает с "q" или "Q".
Текст сценария ComMenu.wsf, реализующего кнопочное меню для работы с записной книжкой, приводится в листинге 7.5.
Листинг 7.5. Командное меню для работы с записной книжкой
var WshShell,SMenu,Res;
Читать дальше