Интерактивный выбор программ автозагрузки

Интерактивный выбор программ автозагрузки

Как известно, в подменю Программы (Programs) стартового меню Windows имеется пункт Автозагрузка (Startup), в который можно поместить ярлыки тех программ, которые должны быть автоматически запущены при регистрации пользователя в системе. Однако в процессе загрузки своего профиля пользователь не имеет возможности запустить только какие-либо определенные программы из папки автозагрузки — можно либо запустить все программы, либо не запускать ни одной (для этого необходимо в процессе регистрации в системе удерживать нажатой клавишу <Shift>).

Мы напишем сценарий Logon.js, с помощью которого пользователь при входе сможет выбрать запускаемые программы; назначив этот сценарий в качестве сценария входа групповой политики, мы сделаем процесс автозагрузки приложений интерактивным.

Начнем мы с того, что создадим в каталоге %SystemDrive%Documents and SettingsAll UsersГлавное меню, в котором хранятся ярлыки программ из стартового меню для всех пользователей, папку Выборочная автозагрузка и поместим туда ярлыки для нужных приложений (рис. 11.17).

После этого ярлыки из обычной папки Автозагрузка нужно убрать. Рассмотрим теперь алгоритм работы сценария входа Logon.js.

Вначале нужно определить путь к папке выборочной автозагрузки (переменная PathStartup). Для этого мы воспользуемся объектом WshSpecialFolders:

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

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

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

WshFldrs=WshShell.SpecialFolders;

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

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

Рис. 11.17. Новая папка Выборочная автозагрузка

Зная путь к нужной папке, мы формируем коллекцию всех файлов, которые находятся в ней (переменная Files):

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

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

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

Folder=FSO.GetFolder(PathStartup);

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

Files=new Enumerator(Folder.Files);

После этого мы выводим на экран диалоговое окно с вопросом, нужно ли запустить программы из папки автозагрузки в пакетном режиме, т.е. все сразу (рис. 11.18).

Рис. 11.18. Выбор режима автозагрузки программ (пакетный или интерактивный)

В зависимости от нажатой в диалоговом окне кнопки мы присваиваем логическое значение переменной 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);

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

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

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

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

IsRunAll=(Res==vbYes);

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

while (!Files.atEnd()) {

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

 File=Files.item();

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

 Res=0;

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

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

  Res=WshShell.Popup("Запустить "+File.Name+"?",0,

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

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

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

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

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

 Files.moveNext();

}

/*************  Конец *********************************************/

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Интерактивный дизайн

Из книги автора

Интерактивный дизайн • About Face 3: The Essentials of Interaction Design by Alan Cooper (Купер А. Алан Купер об интерфейсе. Основы проектирования взаимодействия. СПб.: Символ-Плюс, 2009).• The Inmates Are Running the Asylum: Why Tech Products Drive Us Crazy and How to Restore the Sanity, Alan Cooper, Robert Reimann, and David Cronin (Купер A., Райман P. и Кронин Д.


Выбор, установка и удаление программ

Из книги автора

Выбор, установка и удаление программ Установка новых программ Но какими бы потрясающими талантами ни обладала Vista, и сколько бы крутых программ ни хранило в себе ее увесистое брюхо, их нам все равно будет мало. А значит, мы будем искать, покупать, скачивать превеликое


12.2. Выбор программ

Из книги автора

12.2. Выбор программ Программ для работы в Интернете очень много – браузеры, почтовые клиенты, FTP-клиенты и т. п. Вы должны знать, какие программы являются программами с открытым кодом, а какие – нет.Сначала определимся, какие программы понадобятся для работы в Интернете:?


Интерактивный

Из книги автора

Интерактивный Данный способ применяется наиболее часто при построении объектов сцены. Для создания объекта необходимо выбрать тип объекта, а затем щелкнуть в окне проекции и переместить указатель мыши для определения оставшихся параметров. Результирующая геометрия


Интерактивный SQL (ISQL)

Из книги автора

Интерактивный SQL (ISQL) Инструмент интерактивных запросов isql использует операторы DSQL вместе с двумя подмножествами расширенных команд (группы SET xxx и SHOW xxx), которые позволяют интерактивно выполнить некоторые установки и запросы к схеме соответственно. Некоторые команды SET


ГЛАВА 37. Интерактивный SQL (утилита isql).

Из книги автора

ГЛАВА 37. Интерактивный SQL (утилита isql). Утилита isql, инсталлированная в каталоге /bin ниже вашего корневого каталога Firebird, предоставляет неграфический интерфейс для баз данных Firebird, который совместим со всеми серверными и клиентскими платформами.isql принимает операторы DDL и


Интерактивный режим

Из книги автора

Интерактивный режим Интерактивная утилита isql может быть запущена локально или с удаленного клиента.* Для запуска isql с удаленного клиента всегда требуются имя пользователя и пароль.* Если вы соединены локально, вы можете установить переменные операционной системы ISC_USER и


Интерактивный режим

Из книги автора

Интерактивный режим Данный режим предназначен для работы со всеми функциями, возможностями и ресурсами ИД. В этом режиме в правой части экрана появляется панель инструментов InterWrite (назначение кнопок панели инструментов см. в табл. П3.2). Эту панель инструментов можно


Интерактивный режим работы с доской

Из книги автора

Интерактивный режим работы с доской В этом режиме на экране появляется основная панель инструментов. Эту панель инструментов можно перемещать по экрану, а также менять ее размеры. Данная панель может быть перенастроена под свои потребности за счет дополнительных


Интерактивный режим

Из книги автора

Интерактивный режим Для начала работы в интерактивном режиме можно использовать один из способов, предложенных далее.? СПОСОБ 1.На рабочем столе дважды щелкнуть по значку Программа Notebook.? СПОСОБ 2.Используя значок SMART Board (см. рис. 2.7) на панели задач, левой кнопкой мыши


Интерактивный режим

Из книги автора

Интерактивный режим Интерактивный режим предназначен для работы с устройством Mimio и требует подключения проектора. В этом режиме можно работать в программе mimio Блокнот или без нее. При этом маркер выполняет функции компьютерной мыши: поддерживается функция


Интерактивный режим

Из книги автора

Интерактивный режим При запуске программного обеспечения Flow!Works пользователь автоматически попадает в интерактивный режим, который дает возможность использовать весь инструментарий интерактивной доски. Сенсорная поверхность интерактивной доски позволяет при работе


9.2. Очистка списка автозагрузки

Из книги автора

9.2. Очистка списка автозагрузки При установке многие программы, чтобы ускорить работу или по другим причинам, добавляют в автозагрузку свой модуль. Это приводит к тому, что список автозагрузки разрастается и заметно увеличивает время загрузки операционной системы. Это


Выбор дополнительных программ и компонентов системы

Из книги автора

Выбор дополнительных программ и компонентов системы После того как разметка диска окончена, программа установки может спросить, какие дополнительные программы или компоненты системы нужно устанавливать, а какие нет. Здесь возможны следующие варианты.Если вы