Чтение онлайн

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

SComLine="%COMSPEC% /с ";

Синтаксис запуска arj.exe для создания архивного файла имеет следующий вид:

arj.exe a Archiv Files

где

Archiv
— путь к файлу-архиву,
Files
— имена добавляемых в архив файлов (здесь можно использовать шаблонные символы ? и *). Поэтому мы добавим нужные компоненты к командной строке
SComLine
:

SComLine+=" arj.exe a "+FSO.BuildPath(SArch, SFName) + " ";

SComLine+= FSO.BuildPath(SFrom, SMask);

Команды,

записанные в
SComLine
, запускаются с помощью метода
Run
объекта
WshShell
; код возврата сохраняется в переменной
RetCode
:

RetCode = WshShell.Run(SComLine, 1, true);

Равенство нулю переменной

RetCode
означает, что архивирование выполнено без ошибок — в этом случае функция
FilesToArchiv
возвращает
true
. Если же при выполнении arj.exe возникла ошибка (переменная
RetCode
не равна нулю), то ее код вносится в сообщение об ошибке (свойство
SErrMess
):

//Анализируем код возврата для 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) {

Поделиться с друзьями: