//Чтение и запись свойства 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");
//Проверяем доступность исходного каталога
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;
}
}
]]>
Регистрация файла DateArc.wsc в качестве СОМ-объекта
После написания текста объекта-сценария нужно внести информацию о нем в системный реестр, т.е, зарегистрировать объект. Это можно сделать несколькими способами, самый простой из которых заключается в следующем. Нужно выделить в Проводнике Windows необходимый WSC-файл с компонентом-сценарием (в нашем случае это файл DateArc.wsc в каталоге C:\WSC), щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Подключить(Register) (рис. 10.7).
Рис. 10.7.Контекстное меню, сопоставленное расширению WSC
После этого необходимая информация запишется в реестр и выполнится функция Register()
, которая описана в файле DateArc.wsc внутри элемента , в результате чего на экран будет выведено диалоговое окно, показанное на рис. 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).
Читать дальше