Выбрать главу

//Анализируем код возврата для arj.exe

if (0==RetCode)

 //Выполнение arj.exe завершилось без ошибок

 return true;

else {

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

 SErrMess="Ошибка ARJ.EXE! Код "+RetCode;

 return false;

} 

Полностью содержимое файла DateArc.wsc приведено в листинге 10.4.

Листинг 10.4. СОМ-объект DateArc.WSC (JScript)

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

<component>

 <registration description="DateArc" progid="DateArc.WSC"

  version="1.00"

  classid="{424ac2bc-5732-4dea-be17-0211af99cd79}">

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

 </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;

//Конструктор объекта DateArc

function DateArc()   {

 //Объявляем свойства объекта 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;

 //Объявляем метод FilesToArchiv

 this.FilesToArchiv = FilesToArchiv;

}

var SFrom,    //Исходный каталог для архивирования

    SArch,    //Каталог, в котором будет создаваться архив

    SPref,    //Префикс файла

    SMask,    //Маска, по которой отбираются файлы для

              //архивирования

    SErrMess; //Текст сообщения об ошибке

//Чтение и запись свойства SFrom

function get_SFrom() {

 return SFrom;

}

function put_SFrom(newValue) {

 SFrom = newValue;

}

//Чтение и запись свойства SArch

function get_SArch() {

 return SArch;

}

function put_SArch(newValue) {

 SArch = newValue;

}

//Чтение и запись свойства SPref

function get_SPref() {

 return SPref;

}

function put_SPref(newValue) {

 SPref = newValue;

}

//Чтение и запись свойства SMask

function get_SMask() {

 return SMask;

}

function put_SMask(newValue) {

 SMask = newValue;

}

//Чтение свойства SErrMess

function get_SErrMess() {

 return SErrMess;

}

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

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;

}

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

function CheckPath() {

 var FSO;

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

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