Андрей Попов - Windows Script Host для Windows 2000/XP
Рмея зарегистрированный РІ системе РЎРћРњ-объект СЃ такими свойствами Рё методами, несложно написать сценарий (назовем его RunArj.js), РІ котором создавался Р±С‹ экземпляр объекта DateArc.WSC Рё производилось СЃ помощью метода FilesToArchiv() архивирование файлов РёР· РёСЃС…РѕРґРЅРѕРіРѕ РІ целевой каталог (листинг 10.2).
Листинг 10.2. Архивирование файлов с помощью СОМ-объекта DateArc.WSC/********************************************************************/
/* РРјСЏ: RunArj.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                   */
/* Описание: Архивирование файлов с помощью COM-объекта DateArc.WSC */
/********************************************************************/
//Объявляем переменные
var
В DateArc,В //Ркземпляр объекта DateArc.WSC
 Result;  //Результат выполнения метода FilesToArchiv()
//Рнициализируем константы для диалоговых РѕРєРѕРЅ
var vbCritical=16,vbInformation=64;
//Создаем объект WshShell
WshShell = WScript.CreateObject("WScript.Shell");
//Создаем объект DateArc.WSC
DateArc=WScript.CreateObject("DateArc.WSC");
DateArc.SFrom="D:\1";В //Рсходный каталог
DateArc.SArch="D:\2"; //Каталог, в который будут архивироваться
                       //файлы
DateArc.SPref="aa"; //Префикс для файл-архива
DateArc.SMask="*.*"; //Маска, по которой будут отбираться файлы
                    //для архивирования
//Запускаем метод FilesToArchiv()
Result=DateArc.FilesToArchiv();
if (!Result)
 //Если возникла ошибка, выводим соответствующее сообщение
 WshShell.Popup(DateArc.SErrMess, 0, "Архивирование файлов", vbCritical);
else WshShell.Popup("Архивирование завершено успешно!", 0,
 "Архивирование файлов", vbInformation);
/************* Конец *********************************************/В
Создание макета файла DateArc.wsc с помощью Windows Script Component Wizard (JScript)
РР· листинга 10.1 можно понять, что создание компонента-сценария связано СЃ написанием большого количества вспомогательного РєРѕРґР° (нужно заполнить элементы <registration>, <property>, <method> Рё <events>, написать функции для чтения Рё записи каждого РёР· свойств объекта Рё С‚.Рґ). Поэтому РјС‹ воспользуемся специальным мастером для создания компонентов-сценариев Windows Script Component Wizard (эту программу можно СЃРІРѕР±РѕРґРЅРѕ получить СЃ сайта Microsoft http://msdn.microsoft.com/scripting).
Первым шагом после запуска мастера является заполнение полей диалогового окна, представленного на рис. 10.1. Здесь нужно ввести имя создаваемого компонента ("DateArc"), имя файла с его описанием ("DateArc"), программный идентификатор ("DateArc.WSC"), версию компонента ("1.00") и каталог, в котором будет создан WSC-файл ("C:WSC").
Рис. 10.1. Общая информация о создаваемом компоненте-сценарии
На втором шаге работы мастера мы выберем, какой язык будет использоваться при написании сценария ("JScript"), и укажем, что при регистрации и работе объекта нужно выполнять проверку ошибок ("Error checking") (рис. 10.2).
Рис. 10.2. Определение характеристик компонента-сценария
Третий шаг работы мастера позволяет описать свойства создаваемого объекта. Здесь для каждого свойства мы указываем его имя (колонка "Name"), тип ("Read" — только чтение, "Write" — только запись, "Read/Write" — чтение и запись) и значение по умолчанию (колонка "Default") (рис. 10.3).
Рис. 10.3. Задание свойств компонента-сценария
На четвертом шаге описываются методы объекта. В нашем случае объект DateArc.WSC имеет единственный метод FilesToArchiv(), вызываемый без параметров (рис. 10.4).
Рис. 10.4. Задание методов компонента-сценария
На пятом шаге нам предлагается указать, какие события могут возникать в объекте. Для нашего компонента-сценария мы не будем задавать никаких событий (рис. 10.5).
Рис. 10.5. Задание событий компонента-сценария
Шестой шаг является заключительным в работе мастера. Здесь нам выдается вся информация о создаваемом объекте (рис. 10.6). После нажатия кнопки Finish в каталоге C:WSC будет создан файл DateArc.wsc, приведенный в листинге 10.3.
Р РёСЃ. 10.6. Ртоговая информация Рѕ создаваемом компоненте-сценарии
Листинг 10.3. Файл DateArc.wsc, сгенерированный программой Windows Script Component Wizard (JScript)<?xml version="l.0"?>
<component>
В <?component error="true" debug="false"?>
В <registration description="DateArc" progid="DateArc.WSC" version="1.00" classid="{424ac2bc-5732-4dea-bel7-0211af99cd79}">
В </registration>
В <public>
В <property name="SFrom">
В В <get/>
В В <put/>
В </property>
В <property name="SArch">
В В <get/>
В В <put/>
В В </property>
В <property name="SPref">
В В <get/>
В В <put/>
В В </property>
В <property name="SMask">
В В <get/>
В В <put/>
В В </property>
В В <property name="SErrMess">
В В <get/>
В </property>
В <method name="FilesToArchiv">
В </method> </public>
В <script language="JScript">
В В <![CDATA[
var description = new DateArc;
function DateArc() {
В this.get_SFrom = get_SFrom;
В this.put_SFrom = put_SFrom;
В this.get_SArch = get_SArch;
В this.put_SArch = put_SArch;
В this.get_SPref = get_SPref;
В this.put_SPref = put_SPref;
В this.get_SMask = get_SMask;
В this.put_SMask = put_SMask;
В this.get_SErrMess = get_SErrMess;
В this.FilesToArchiv = FilesToArchiv;
}
var SFrom;
var SArch;
var SPref;
var SMask;
var SErrMess;
function get_SFrom() {