//пользователя

SBackupPath+=SUserName;

Копирование документов мы будем производить только после утвердительного ответа пользователя на соответствующий вопрос (см. рис. 11.21):

//Запрос на создание резервной копии

Res=WshShell.Popup('Выполнить резервное копирование документов в ' + SBackupPath + ' ?', 0, 'Выход пользователя ' + SUserName, vbQuestion+vbYesNo);

Рис. 11.21. Диалоговое окно с запросом о необходимости копирования

Если пользователь согласен, мы копируем нужный каталог с помощью метода CopyFolder() , причем делаем это внутри блока try конструкции try…catch.

IsError=false;

try {

 //Производим копирование каталога

 FSO.CopyFolder(SHomePath,SBackupPath);

}

В случае возникновения ошибки переменной IsError в блоке catch присваивается значение true, а на экран выводится диалоговое окно с соответствующим сообщением (см. рис. 11.22):

catch (е) { //Обрабатываем возможные ошибки

 if (е != 0) {

  //Выводим сообщение об ошибке

  IsError=true;

  Mess='Ошибка при копировании каталога '+SHomePath+' Код ошибки: ' + е.number + ' Описание: ' + е.description;

  WshShell.Popup(Mess, 0, 'Выход пользователя ' + SUserName, vbCritical);

 }

}

Рис. 11.22. Диалоговое окно с сообщением о возникшей ошибке

Если же в процессе копирования ошибок не возникло (переменная IsError равна false), то пользователю также выдается сообщение об этом (см. рис. 11.23):

if (!IsError) {

 //Производим копирование каталога

 FSO.CopyFolder(SHomePath, SBackupPath); 

 //Все в порядке

 Mess = 'Копирование документов произведено';

 WshShell.Popup(Mess, 0, 'Выход пользователя ' + SUserName, vbInformation);

}

Рис. 11.23. Диалоговое окно с сообщением о возникшей ошибке

Полностью текст сценария Logoff.js приведен в листинге 11.12.

Листинг 11.12. JScript-сценарий выхода, позволяющий производить резервное копирование документов пользователя

/********************************************************************/

/* Имя: Logoff.js                                                   */

/* Язык: JScript                                                    */

/* Описание: Сценарий выхода, позволяющий производить резервное     */

/*           копирование документов пользователя                    */

/********************************************************************/

//Объявляем переменные

var

 WshShell,                   //Экземпляр объекта WshShell

 WshFldrs,                   //Экземпляр объекта WshSpecialFolders

 FSO,                        //Экземпляр объекта FileSystemObject

 SUserDocPath,               //Путь к папке с документами пользователя

 SUserName,                  //Имя пользователя

 SBackupPath='D:\Backup\', //Каталог для резервных копий документов

 Res,IsError;

//Инициализируем константы для диалоговых окон

var vbYesNo=4,vbQuestion=32,vbInformation=64,vbYes=6,vbOkOnly=0,

 vbCritical=16;

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

WshShell = WScript.CreateObject('WScript.Shell');

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

FSO = WScript.CreateObject('Scripting.FileSystemObject');

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

WshFldrs=WshShell.SpecialFolders;

//Определяем путь к папке выборочной автозагрузки

SHomePath=WshFldrs.item('MyDocuments');

//Определяем имя пользователя

SUserName=WshShell.ExpandEnvironmentStrings('%UserName%');

//Формируем полный путь к каталогу с резервными копиями документов

//пользователя

SBackupPath+=SUserName;

//Запрос на создание резервной копии

Res=WshShell.Popup('Выполнить резервное копирование документов в '+

 SBackupPath+' ?', 0, 'Выход пользователя '+SUserName, vbQuestion+vbYesNo);

if (Res==vbYes) { //Нажата кнопка Да

 IsError=false;

 try {

  //Производим копирование каталога

  FSO.CopyFolder(SHomePath,SBackupPath);

 } catch (e) {  //Обрабатываем возможные ошибки

  if (e != 0) {

   //Выводим сообщение об ошибке

   IsError=true;

   Mess='Ошибка при копировании каталога '+SHomePath+' Код ошибки: '+

    e.number+' Описание: '+e.description;

   WshShell.Popup(Mess,0,'Выход пользователя '+SUserName,vbCritical);

  }

 }

 if (!IsError)  {

  //Все в порядке

  Mess='Копирование документов произведено';

  WshShell.Popup(Mess,0,'Выход пользователя '+SUserName,vbInformation);

 }

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату