Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

 //Определяем пути к файлам

 InitPath;

 //Запрос на создание нового ключа

 Res=WshShell.Popup("Добавить запись в \n"+PathBook+"?",0,

"Записная книжка",vbQuestion+vbYesNo);

 if (Res==vbYes) { //Нажата кнопка Да

//Добавляем новую запись в книжку

AddRecord;

//Выводим информацию на экран

WshShell.Popup("Новая запись\n\n"+PersonRec.LastName+" "+

PersonRec.Name+"\n"+PersonRec.Phone+"\n"+

PersonRec.Street+", "+PersonRec.House+"-"+PersonRec.App+"\n\n"+

"добавлена!",0, "Записная
книжка",vbInformation+vbOkOnly);

 }

}

//Запускаем основную функцию

Main;

</script>

</job>

</package>

Итак, у нас теперь имеется многозадачный WS-файл PhoneBook.wsf, обеспечивающий необходимую функциональность для работы с записной книжкой, и следующая задача состоит в организации более или менее удобного диалога с пользователем для запуска заданий из этого файла.

Обработка параметров командной строки

Самый простой вариант организовать диалог с пользователем состоит в использовании параметров командной строки. Напомним, что объектная модель WSH предоставляет несколько методов, которые позволяют производить анализ именных и безымянных параметров (см. разд. "Работа с параметрами командной строки сценария" главы 2), с которыми был запущен сценарий, а в схеме WS XML есть несколько специальных элементов (

<runtime>
, <
named>
,
<unnamed>
,
<description>
и
<example>
), предназначенных для быстрого создания встроенной справки, описывающей синтаксис сценария и смысл каждого из параметров.

Для нашего примера мы создадим сценарий 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. Обработка параметров командной строки сценария для работы с записной книжкой

<job id="ArgMenu">

 <runtime>

<description>

Сценарий для работы с телефонной книжкой

</description>

<named name="L" helpstring="Просмотр содержимого книжки" type="simple" required="false"/>

<named name="F" helpstring="Поиск по фамилии" type="simple" required="false"/>

<named name="A" helpstring="Добавление записи" type="simple" required="false"/>

<named name="D" helpstring="Удаление записи" type="simple" required="false"/>

 </runtime>

 <script language="JScript">

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;

 </script>

</job>

Теперь, если понадобится ввести дополнительную функцию при работе с записной книжкой (например, поиск по номеру телефона), нужно будет в файл PhoneBook.wsf добавить задание с новым идентификатором, а в файл ArgMenu.wsf — обработку нового параметра командной строки.

Организация диалога с помощью кнопочного меню

Вторым вариантом организации диалога, который мы рассмотрим, является кнопочное (командное) меню. Принцип его работы в нашем примере остается практически тем же, что и при описанной выше обработке аргументов командной строки — пользователь должен в диалоговом окне ввести символ, соответствующий одной из описанных в этом окне команд (рис. 7.2). Этот символ анализируется в сценарии, и в зависимости от его значения вызывается то или иное задание из файла PhoneBook.wsf.

Поделиться:
Популярные книги

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Пышка и Герцог

Ордина Ирина
Фантастика:
юмористическое фэнтези
историческое фэнтези
фэнтези
5.00
рейтинг книги
Пышка и Герцог

Имперский Курьер. Том 5

Бо Вова
5. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Имперский Курьер. Том 5

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Законы Рода. Том 11

Андрей Мельник
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Вираж бытия

Ланцов Михаил Алексеевич
1. Фрунзе
Фантастика:
героическая фантастика
попаданцы
альтернативная история
6.86
рейтинг книги
Вираж бытия

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

История "не"мощной графини

Зимина Юлия
1. Истории неунывающих попаданок
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
История немощной графини

Крестоносец

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Крестоносец

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Призыватель нулевого ранга

Дубов Дмитрий
1. Эпоха Гардара
Фантастика:
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга