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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 123 124 125 126 127 128 129 130 131 ... 175
Перейти на страницу:

В this.FilesToArchiv = FilesToArchiv;

}

var SFrom;

var SArch;

var SPref;

var SMask;

var SErrMess;

function get_SFrom() {

В return SFrom;

}

function put_SFrom(newValue) {

В SFrom = newValue;

}

function get_SArch() {

В return SArch;

}

function put_SArch(newValue) {

В SArch = newValue;

}

function get_SPref() {

В return SPref;

}

function put_SPref(newValue) {

В SPref = newValue;

}

function get_SMask() {

В return SMask;

}

function put_SMask(newValue) {

В SMask = newValue;

}

function get_SErrMess(){

В return SErrMess;

}

function FilesToArchiv() {

В return "Temporary Value";

}

В  ]]>

В </script>

</component>

Как мы видим из листинга 10.3, при использовании в компоненте-сценарии языка JScript в результате работы мастера внутрь контейнера <script> помещаются:

□ глобальные переменные, которые соответствуют объявленным в элементах <property> свойствам;

□ заготовки функций с префиксами get_ и put_, которые осуществляют чтение и запись свойств объекта;

□ заготовки функций, которые соответствуют объявленным в элементах <method> методам.

РљСЂРѕРјРµ этого, создается экземпляр внутреннего объекта, содержащего те же свойства Рё методы, что были описаны внутри элемента <public> (переменная description). РРјСЏ этого внутреннего объекта совпадает СЃ именем класса описываемого РЎРћРњ-объекта (РІ нашем случае это "DateArc").

Замечание

Создаваемый мастером внутренний объект нужен только в иллюстративных целях, т.к. здесь наглядно видно, какие именно свойства и методы будет предоставлять клиентам автоматизации компонент-сценарий. Если убрать из контейнера <script> описание внутреннего объекта, это никак не скажется на функционировании объекта-сценария.

Доработка объекта-сценария DateArc.wsc (JScript)

Для получения нужного нам СОМ-объекта из сформированного с помощью Windows Script Component Wizard файла DateArc.wsc нужно выполнить несколько шагов.

Во-первых, для того, чтобы использовать внутри описания СОМ-объекта символы кириллицы, необходимо добавить в директиву <?xml?> аргумент encoding="windows-1251" (без этого в сценарии не удастся даже написать по-русски комментарии):

<?xml version="1.0" encoding="windows-1251"?>

Во-вторых, в контейнер <registration>  мы вставим элемент <script> с двумя функциями Register() и Unregister(), которые будут выводить на экран диалоговые окна с соответствующей информацией при регистрации компонента-сценария и его отключении соответственно:

<script language="JScript">

<![CDATA[

var WshShell;

//Рнициализируем константы для диалоговых РѕРєРѕРЅ

var vbInformation=64;

function Register()В {

 //Создаем объект WshShell

В WshShell = new ActiveXObject("WScript.Shell");

 WshShell.Popup("Компонент зарегистрирован в системе",0,

  "Компонент для архивирования файлов",vbInformation);

}

function Unregister()В В  {

 //Создаем объект WshShell

В WshShell = new ActiveXObject("WScript.Shell");

 WshShell.Popup("Компонент удален из системы", 0,

  "Компонент для архивирования файлов",vbInformation);

}

]]>

</script>

Затем нам понадобятся две дополнительные функции. Первая из них NowIs() формирует строку формата ММДД, где ММ — текущий месяц, ДД — текущий день:

//Вспомогательная функция для символьного представления даты

function NowIs() {

В var d, s="", s1="";

 //Создаем объект Date (текущая дата)

В d=new Date();

 //Выделяем номер месяца

В s+=(d.getMonth()+1);

 //Если месяц представляется одним символом, добавляем слева "0"

В if (s.length==1) s="0"+s;

 //Выделяем в дате день

В s1+=d.getDate();

 //Если день представляется одним символом, добавляем слева "0"

В if (s1.length==1) s1="0"+s1;

В s+=s1;

 //Возвращаем сформированную строку

В return s;

}

Вторая функция CheckPath() будет проверять наличие исходного каталога и каталога для хранения архивных файлов. Для этого используется метод FolderExists() объекта FileSystemObject. Заметим, что сам объект FileSystemObject нужно создавать не путем вызова метода CreateObject объекта WScript, а с помощью конструкции new ActiveXObject():

FSO=new ActiveXObject("Scripting.FileSystemObject");

т.к. в отличие от обычного сценария WSH в компоненте-сценарии нет встроенного объекта WScript. Если хотя бы один из каталогов не существует, функция CheckPath() запишет соответствующее сообщение в свойство SErrMess и вернет значение false, в противном случае функция CheckPath() возвращает значение true.

//Проверка доступности каталогов

function CheckPath() {

В var FSO;

 //Создаем объект FileSystemObject

В FSO=new ActiveXObject("Scripting.FileSystemObject");

 //Проверяем доступность исходного каталога

В if (!FSO.FolderExists(SFrom)) { //Рсходный каталог РЅРµ существует

  //Формируем строку с информацией об ошибке

  SErrMess="Не найден исходный каталог "+SFrom;

В  return false;

В }

 //Проверяем доступность каталога для архивирования

В if (!FSO.FolderExists(SArch)) {

  //Каталог для архивирования не существует

  //Формируем строку с информацией об ошибке

1 ... 123 124 125 126 127 128 129 130 131 ... 175
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Windows Script Host для Windows 2000/XP - Андрей Попов.
Комментарии