WshShell=WScript.CreateObject("WScript.Shell");
SMenu="[L] - Просмотр содержимого книжки\n";
SMenu+="[F] - Поиск по фамилии\n";
SMenu+="[A] - Добавление записи\n";
SMenu+="[D] - Удаление записи\n";
SMenu+="[Q] - Выход из сценария\n";
SMenu+="\n\nКоманда:";
Res="";
while ((Res!="q") && (Res!="Q")) {
Res=WSHInputBox(SMenu,"Записная книжка");
switch (Res) {
case "L": {
WshShell.Run("wscript PhoneBook.wsf //Job:SortName",1,true);
break;
}
case "l": {
WshShell.Run("wscript PhoneBook.wsf //Job:SortName",1,true);
break;
}
case "F": {
WshShell.Run("wscript PhoneBook.wsf //Job:FindName",1,true);
break;
}
case "f": {
WshShell.Run("wscript PhoneBook.wsf //Job:FindName",1,true);
break;
}
case "A": {
WshShell.Run("wscript PhoneBook.wsf //Job:AddRec",1,true);
break;
}
case "a": {
WshShell.Run("wscript PhoneBook.wsf //Job:AddRec",1,true);
break;
}
case "D": {
WshShell.Run("wscript PhoneBook.wsf //Job:DelRec",1,true);
break;
}
case "d": {
WshShell.Run("wscript PhoneBook.wsf //Job:DelRec",1,true);
break;
}
}
}
Однозадачный сценарий для работы с записной книжкой
Как мы видим из вышеприведенных примеров, ни объектная модель WSH, ни языки JScript и VBScript не предоставляют средств для создания полноценного графического интерфейса пользователя.
Тем не менее, такой интерфейс в сценариях WSH создать можно. Мы продемонстрируем это на примере еще одного сценария (состоящего из однозадачного JScript-файла) для работы с записной книжкой, в котором для диалога с пользователем будет организована пользовательская форма с несколькими кнопками и текстовыми полями ввода. Для создания этой формы и работы с ней будут использоваться HTML-файл и браузер Internet Explorer.
Использование Internet Explorer для создания диалоговых окон
Процесс создания сценария WSH, использующего Internet Explorer в качестве интерфейса, можно условно разделить на несколько этапов:
□ создание HTML-формы в отдельном файле;
□ написание функции для сценария WSH, в которой будет производиться вывод на экран построенной формы;
□ написание части сценария, в которой будет реализована необходимая функциональность (например, обмен информацией между формой и внешним файлом с данными, корректное отображение данных в форме и т.д.);
□ добавление в сценарий функций-обработчиков событий, связанных с поведением браузера Internet Explorer;
□ добавление в сценарий функций-обработчиков событий, которые генерируются элементами управления в форме.
Ниже мы рассмотрим каждый из этих этапов на примере создания сценария IEPhoneBook.js для работы с записной книжкой, которая хранится, как и прежде, в XML-файле book.xml.
Разработка HTML-формы для диалогового окна
В качестве интерфейса записной книжки мы создадим диалоговое окно (пользовательскую форму), которое показано на рис. 7.3.
Рис. 7.3.Диалоговое окно для работы с записной книжкой
Эта форма реализуется с помощью HTML-файл Phone.htm, который полностью приведен в листинге 7.6.
В самом начале файла Phone.htm ставится тег , указывающий на то, что содержимым файла является текст в формате HTML, а также теги
и , внутри которых задаются используемая кодировка (
charset=windows-1251
) и заголовок формы (теги и ):
Для того чтобы задать цвет формы, в теге
используется атрибут
bgcolor
со значением "
silver
":
Атрибут scroll="no"
указывает на то, что в диалоговом окне не должно быть полос прокрутки.
Наша форма состоит из семи текстовых полей ввода (табл. 7.2) и восьми кнопок (табл. 7.3).
Таблица 7.2.Поля ввода диалогового окна для работы с записной книжкой
Имя поля |
Размер поля (символов) |
Назначение |
txtLastName |
50 |
Поле для ввода фамилии |
txtName |
50 |
Поле для ввода имени |
txtPhone |
15 |
Поле для ввода номера телефона |
txtStreet |
50 |
Поле для ввода названия улицы |
txtHouse |
10 |
Поле для ввода номера дома |
txtApp |
5 |
Поле для ввода номера квартиры |
txtNote |
80 |
Поле для ввода примечания |
Таблица 7.3.Кнопки диалогового окна для работы с записной книжкой
Текст кнопки |
Имя кнопки |
Назначение |
<< |
btnFirst |
Переход к первой записи |
< |
btnPrevious |
Переход к предыдущей записи |
Новая запись |
btnNew |
Добавление новой пустой записи |
Записать |
btnSave |
Сохранение сделанных изменений вXML-файле |
Отменить |
btnCancel |
Отмена сделанных в форме изменений |
Удалить |
btnDelete |
Удаление текущей записи |
> |
btnNext |
Переход к следующей записи |
>> |
btnFinal |
Переход к последней записи |
Команды, создающие форму, находятся внутри тегов
Читать дальше