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

на главную

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

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

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

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

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

SBackupPath+=SUserName;

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

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

Res=WshShell.Popup("Выполнить
резервное копирование документов в\n" + 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+"\nКод ошибки: " + е.number + "\nОписание: " + е.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("Выполнить резервное копирование документов в\n"+

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

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

 IsError=false;

 try {

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

FSO.CopyFolder(SHomePath,SBackupPath);

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

if (e != 0) {

Поделиться:
Популярные книги

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Метатель. Книга 2

Тарасов Ник
2. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель. Книга 2

Безумный Макс. Ротмистр Империи

Ланцов Михаил Алексеевич
2. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
4.67
рейтинг книги
Безумный Макс. Ротмистр Империи

Болотник

Панченко Андрей Алексеевич
1. Болотник
Фантастика:
попаданцы
альтернативная история
6.50
рейтинг книги
Болотник

Темный Лекарь 6

Токсик Саша
6. Темный Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Темный Лекарь 6

Архил...? Книга 2

Кожевников Павел
2. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Архил...? Книга 2

Целитель

Первухин Андрей Евгеньевич
1. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Мастер 3

Чащин Валерий
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 3

Фараон

Распопов Дмитрий Викторович
1. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Фараон

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Энфис 2

Кронос Александр
2. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 2