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

на главную - закладки

Жанры

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) {

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

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар

Шутка

Кундера Милан
Проза:
современная проза
6.60
рейтинг книги
Шутка

Печать пожирателя 6

Соломенный Илья
6. Пожиратель
Фантастика:
городское фэнтези
попаданцы
аниме
сказочная фантастика
фантастика: прочее
5.00
рейтинг книги
Печать пожирателя 6

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник

Олд мани

Голд Яна
Любовные романы:
современные любовные романы
остросюжетные любовные романы
фемслеш
5.00
рейтинг книги
Олд мани

Травница Его Драконейшества

Рель Кейлет
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Травница Его Драконейшества

Наномашины, звереныш! Том 5

Новиков Николай Васильевич
5. Первый среди карапузов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наномашины, звереныш! Том 5

Третий Генерал: Том III

Зот Бакалавр
2. Третий Генерал
Фантастика:
попаданцы
рпг
аниме
5.00
рейтинг книги
Третий Генерал: Том III

Болотник

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

Я до сих пор не князь. Книга XVI

Дрейк Сириус
16. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я до сих пор не князь. Книга XVI

Жена неверного маршала, или Пиццерия попаданки

Удалова Юлия
Любовные романы:
любовно-фантастические романы
4.25
рейтинг книги
Жена неверного маршала, или Пиццерия попаданки

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5

Московское золото или нежная попа комсомолки. Часть 1

Хренов Алексей
1. Летчик Леха
Фантастика:
боевая фантастика
попаданцы
6.33
рейтинг книги
Московское золото или нежная попа комсомолки. Часть 1