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. 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) {
Поделиться:
Популярные книги
Кодекс Охотника. Книга XVIII
18. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар темного лорда IX
9. Гримуар темного лорда
Фантастика:
попаданцы
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Эпоха Опустошителя. Том I
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Инженер Петра Великого
1. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Древесный маг Орловского княжества 4
4. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Теней 7
7. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Курс 1. Сентябрь
1. Маркатис
Фантастика:
аниме
фэнтези
сказочная фантастика
5.00
рейтинг книги
Мастер 11
11. Мастер
Фантастика:
боевая фантастика
попаданцы
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Найденыш
2. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Палач
4. Викс
Фантастика:
фэнтези
7.27
рейтинг книги
Кодекс Императора IV
4. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Новые горизонты
5. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Дракон
5. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.31
рейтинг книги
Цикл "Идеальный мир для Лекаря". Компиляция. Книги 1-30
Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
аниме
фэнтези
5.00