<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.
Рис. 7.2. Кнопочное меню для работы с записной книжкой
Диалоговое окно, показанное на рис. 7.2, выводится в цикле while, в котором с помощью оператора switch анализируется введенный пользователем символ. Выход из цикла совершается, если введенный символ совпадает с "q" или "Q".
Текст сценария ComMenu.wsf, реализующего кнопочное меню для работы с записной книжкой, приводится в листинге 7.5.
<job id="ComMenu">
<script language="VBScript" src="WSHInputBox.vbs"/>
<script language="JScript">
var WshShell,SMenu,Res;
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;
}
}
}
</script>
</job>
Однозадачный сценарий для работы с записной книжкой
Как мы видим из вышеприведенных примеров, ни объектная модель WSH, ни языки JScript и VBScript не предоставляют средств для создания полноценного графического интерфейса пользователя.
Тем не менее, такой интерфейс в сценариях WSH создать можно. Мы продемонстрируем это на примере еще одного сценария (состоящего из однозадачного JScript-файла) для работы с записной книжкой, в котором для диалога с пользователем будет организована пользовательская форма с несколькими кнопками и текстовыми полями ввода. Для создания этой формы и работы с ней будут использоваться HTML-файл и браузер Internet Explorer.