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

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

Жанры

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

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

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

Меняя маски

Метельский Николай Александрович
1. Унесенный ветром
Фантастика:
боевая фантастика
попаданцы
9.22
рейтинг книги
Меняя маски

Курсант: назад в СССР 9

Дамиров Рафаэль
9. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: назад в СССР 9

Лорд Системы 13

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

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Месть Пламенных

Дмитриева Ольга
6. Пламенная
Фантастика:
фэнтези
6.00
рейтинг книги
Месть Пламенных

Как я строил магическую империю 6

Зубов Константин
6. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 6

Идеальный мир для Лекаря 24

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

Внешняя Зона

Жгулёв Пётр Николаевич
8. Real-Rpg
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Внешняя Зона

Архил…? Книга 3

Кожевников Павел
3. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
7.00
рейтинг книги
Архил…? Книга 3

Идеальный мир для Лекаря 18

Сапфир Олег
18. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 18

Барон ненавидит правила

Ренгач Евгений
8. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Барон ненавидит правила

Идеальный мир для Лекаря 14

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

Дворянская кровь

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