Windows Script Host для Windows 2000/XP - Андрей Попов
Шрифт:
Интервал:
Закладка:
 //Выделяем в дате день
В 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_MACHINESOFTWAREClasses создается новый подраздел DateArc.WSC со значением по умолчанию "DateArc". В подразделе DateArc.WSC в параметр CLSID записывается глобальный код объекта DateArc.WSC — "{424AC2BC-5732-4DEA-BE17-0211AF99CD79}" (рис. 10.9).
Р РёСЃ. 10.9. Рнформация Рѕ зарегистрированном объекте DateArc.WSC РІ ветви HKEY_LOCAL_MACHINE
В разделе HKEY_CLASSES_ROOTCLSID создается новый подраздел, название которого совпадает с глобальным кодом объекта DateArc.WSC — "{424AC2BC-5732-4DEA-BE17-0211AF99CD79}". Значением по умолчанию для нового подраздела является "DateArc" (рис. 10.10).
Р РёСЃ. 10.10. Рнформация Рѕ зарегистрированном объекте DateArc.WSC РІ ветви HKEY_CLASSES_ROOT
Р’ РЅРѕРІРѕРј разделе создаются, РІ СЃРІРѕСЋ очередь, еще несколько подразделов, значения которых очень важны для функционирования компонента-сценария РІ качестве РЎРћРњ-объекта (СЃРј. разд. "Технология Windows Script Components"). Рти разделы для нашего примера описаны РІ табл. 10.2.
Таблица 10.2. Подразделы, создаваемые в разделе HKCRCLSID {424AC2BC-5732-4DEA-BE17-0211AF99CD79} при регистрации объекта DateArc.WSC
Название Значение по умолчанию Описание InprocServer32 "F:WINDOWSSystem32scrobj.dll" Полный путь к оболочке компонентов-сценариев scrobj.dll ProgID "DateArc.WSC.1.00" Программный идентификатор объекта, включающий номер версии ScriptletURL "file://C:WSCDateArc.wsc" Полный путь к WSC-файлу VersionIndependentProgID "DateArc.WSC" Программный идентификатор объекта без номера версииОтключается компонент-сценарий так же просто, как и регистрируется. Снова нужно выделить в Проводнике Windows WSC-файл, щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Отключить (Unregister). При этом из системного реестра записи об этом объекте будут удалены, после чего выполнится функция Unregister() (рис. 10.11).
Р РёСЃ. 10.11. Рнформация РѕР± отключении компонента-сценария DateArc.WSCВ