Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программное обеспечение » Windows Script Host для Windows 2000/XP - Андрей Попов

Windows Script Host для Windows 2000/XP - Андрей Попов

Читать онлайн Windows Script Host для Windows 2000/XP - Андрей Попов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 94 95 96 97 98 99 100 101 102 ... 175
Перейти на страницу:

Таблица 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.

Рис. 7.2. Кнопочное меню для работы с записной книжкой

Диалоговое окно, показанное на рис. 7.2, выводится в цикле while, в котором с помощью оператора switch анализируется введенный пользователем символ. Выход из цикла совершается, если введенный символ совпадает с "q" или "Q".

Текст сценария ComMenu.wsf, реализующего кнопочное меню для работы с записной книжкой, приводится в листинге 7.5.

Листинг 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+="nnКоманда:";

В 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.

1 ... 94 95 96 97 98 99 100 101 102 ... 175
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Windows Script Host для Windows 2000/XP - Андрей Попов.
Комментарии