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

ЖАНРЫ

Windows Script Host для Windows 2000/XP

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

Шрифт:

 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");

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

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

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

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

return false;

 }

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

 if (!FSO.FolderExists(SArch)) {

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

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

SErrMess="Не найден каталог для хранения архивов "+SArch;

return false;

 }

 //Если оба каталога существуют, возвращаем true

 return true;

}

//Архивирование файлов из исходного каталога

function FilesToArchiv {

 var WshShell,SComLine,RetCode,SFName,FSO;

 //Если хотя бы один из каталогов не существует, возвращаем false

 if (!CheckPath) return false;

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

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

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

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

 //Формируем имя файла-архива

 SFName=SPref+NowIs+".arj";

 //Формируем командную строку для запуска архиватора arj.exe

 SComLine="%COMSPEC% /c arj.exe a ";

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

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

 //Запускаем
архиватор arj.exe

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

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

 if (0==RetCode)

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

return true;

 else {

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

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

return false;

 }

}

]]>

 </script>

</component>

Регистрация файла DateArc.wsc в качестве СОМ-объекта

После написания текста объекта-сценария нужно внести информацию о нем в системный реестр, т.е, зарегистрировать объект. Это можно сделать несколькими способами, самый простой из которых заключается в следующем. Нужно выделить в Проводнике Windows необходимый WSC-файл с компонентом-сценарием (в нашем случае это файл DateArc.wsc в каталоге C:\WSC), щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Подключить (Register) (рис. 10.7).

Рис. 10.7. Контекстное меню, сопоставленное расширению WSC

После этого необходимая информация запишется в реестр и выполнится функция

Register
, которая описана в файле DateArc.wsc внутри элемента
<registration>
, в результате чего на экран будет выведено диалоговое окно, показанное на рис. 10.8. 

Рис. 10.8. Информация о регистрации компонента-сценария DateArc.WSC

В системном реестре данные о регистрируемом объекте

DateArc.WSC
заносятся в две ветви:
HKEY_LOCAL_MACHINE
и
HKEY_CLASSES_ROOT
.

В разделе

HKEY_LOCAL_MACHINE\SOFTWARE\Classes
создается новый подраздел
DateArc.WSC
со значением по умолчанию "
DateArc
". В подразделе
DateArc.WSC
в параметр
CLSID
записывается глобальный код объекта
DateArc.WSC
 — "{424AC2BC-5732-4DEA-BE17-0211AF99CD79}" (рис. 10.9).

Рис. 10.9. Информация о зарегистрированном объекте DateArc.WSC в ветви

HKEY_LOCAL_MACHINE

В разделе

HKEY_CLASSES_ROOT\CLSID
создается новый подраздел, название которого совпадает с глобальным кодом объекта DateArc.WSC — "{424AC2BC-5732-4DEA-BE17-0211AF99CD79}". Значением по умолчанию для нового подраздела является "DateArc" (рис. 10.10).

Рис. 10.10. Информация о зарегистрированном объекте DateArc.WSC в ветви

HKEY_CLASSES_ROOT

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