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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

В зависимости от нажатой в диалоговом окне кнопки мы присваиваем логическое значение переменной

IsRunAll
, определяющей режим автозагрузки программ (если
IsRunAll
равно
false
, то для каждой программы будет выдаваться запрос на ее запуск, в противном случае все программы запускаются без предупреждения):

//Выводим запрос на запуск сразу всех программ

Res=WshShell.Popup("Запустить сразу все программы?", 0,

 "Выборочная автозагрузка", vbQuestion+vbYesNo);

//Определяем, нажата ли кнопка "Да"

IsRunAll=(Res==vbYes);

Далее в цикле

while
производится перебор всех файлов из коллекции
Files
; переменная
File
соответствует текущему файлу в коллекции:

//Цикл по всем файлам каталога выборочной автозагрузки

while (!Files.atEnd) {

 //Создаем объект File для текущего элемента коллекции

 File=Files.item;

 //Переходим к следующему файлу в коллекции

 Files.moveNext;

}

Если ранее был выбран интерактивный режим запуска программ (переменная

IsRunAll
равна
false
), то мы выводим запрос на запуск текущего файла (рис. 11.19):

//Обнуляем переменную Res Res=0;

if (!IsRunAll) //Программы нужно запускать по одной

 //Выводим запрос на запуск одной программы

 Res=WshShell.Popup("Запустить "+File.Name+"?", 0, "Выборочная автозагрузка", vbQuestion+vbYesNo);

Рис. 11.19. Запрос на запуск одной программы из папки автозагрузки

Если пользователь решил запустить программу (переменная

Res
равна
vbYes
) или программы запускаются в пакетном режиме, то мы запускаем текущую программу в минимизированном окне с помощью метода
Run
объекта
WshShell
:

if ((IsRunAll) || (Res=vbYes))

 //Запускаем текущую программу в минимизированном окне

 WshShell.Run("\""+File.Path+" \"", vbMinimizedFocus);

Так как в полном имени запускаемой программы могут быть пробелы, это имя нужно заключить в двойные кавычки с помощью escape-последовательности \".

Замечание

Другим вариантом запуска с помощью метода

Run
программ, имена которых содержат пробелы, можно использовать короткие имена папок и файлов посредством свойства
ShortPath
объекта
File:
WshShell.Run(File.ShortPath, vbMinimizedFocus);

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

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

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

/* Имя: Logon.js */

/* Язык: JScript */

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

/* автозагрузки */

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

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

var

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

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

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

 PathStartup, //Путь к папке выборочной автозагрузки

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

//выборочной автозагрузки

 Files, //Коллекция файлов в папке выборочной автозагрузки

 File, //Экземпляр объекта File для ярлыка в папке

//выборочной автозагрузки

 Res, //Результат нажатия кнопок в диалоговых окнах

 IsRunAll; //Логический флаг, указывающий, надо ли запустить

//сразу все программы из автозагрузки

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

var vbYesNo=4,vbQuestion=32,vbYes=6,vbOkOnly=0,vbMinimizedFocus=2;

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

WshShell=WScript.CreateObject("Wscript.Shell");

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

WshFldrs=WshShell.SpecialFolders;

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

PathStartup=WshFldrs.item("AllUsersStartMenu")+"\\Выборочная автозагрузка\\";

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

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

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

Folder=FSO.GetFolder(PathStartup);

//Создаем коллекцию файлов каталога выборочной автозагрузки

Files=new Enumerator(Folder.Files);

//Выводим запрос на запуск сразу всех программ

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

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Мы – Гордые часть 8

Машуков Тимур
8. Стальные яйца
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мы – Гордые часть 8

Я снова не князь! Книга XVII

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

Приказано выжить!

Малыгин Владимир
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.09
рейтинг книги
Приказано выжить!

Недотепа

Лукьяненко Сергей Васильевич
Фантастика:
фэнтези
5.80
рейтинг книги
Недотепа

Кодекс Охотника. Книга XXVII

Винокуров Юрий
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXVII

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

Древесный маг Орловского княжества 5

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

Зодчий. Книга II

Погуляй Юрий Александрович
2. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Зодчий. Книга II

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Пустоши

Сай Ярослав
1. Медорфенов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Пустоши

Неправильный лекарь. Том 2

Измайлов Сергей
2. Неправильный лекарь
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Неправильный лекарь. Том 2

An ordinary sex life

Астердис
Любовные романы:
современные любовные романы
love action
5.00
рейтинг книги
An ordinary sex life