Недокументированные и малоизвестные возможности Windows XP
Шрифт:
Создание ярлыка файл в меню Пуск
Это еще одна возможность, которой можно воспользоваться
Блок для описания ярлыка в меню Пуск может содержать следующие ключевые слова.
■ Name — определяет название создаваемого в меню Пуск ярлыка.
■ CmdLine — указывает путь к программе, для которой создается ярлык. Формат данного ключевого слова немного необычен: «числовой путь к стандартному каталогу, размещение файла, название файла».
■ SubDir — определяет расположение ярлыка в меню Пуск. Если точнее, то данное ключевое слово определяет дальнейший путь к каталогу, который будет содержать ярлык на программу. Дальнейший путь добавляется к пути %systemdrive%\Documents and Settings\All Users\Главное меню\Программы.
■ WorkingDir — указывает рабочие каталоги для программы, на которую создается ярлык (как правило, это ключевое слово не указывается).
■ InfoTip — определяет подсказку, отображаемую при наведении указателя на созданный в меню Пуск ярлык.
Расширенные INF-файлы
Расширенные INFфайлы отличаются от обычных одной строкой, которую нужно добавить в блок [version]. Ниже приведен пример блока версии для расширенного INF-файла.
Для работы с расширенными INFфайлами необходима библиотека advpack.dll, по умолчанию расположенная в каталоге %systemroot%. Если перед началом выполнения расширенного INFфайла система не найдет данной библиотеки, то она выведет сообщение, указанное в ключевом слове AdvancedINF после запятой. К тому же, как известно, расширенные INFфайлы вызываются с помощью команды rundll32.exe ADVPACK.dll, LaunchINFSectionEx «имя файла», «имя раздела», «имя cab-файла», «флаг». Тогда как обычные INF-файлы вызываются
Запуск программ до и после установки
Расширенные INF-файлы поддерживают такую возможность, как запуск команд перед установкой INF-файла или после нее. При этом для указания блока, описывающего программы, запускаемые перед установкой INF-файла, используется ключевое слово RunPreSetupCommands. Для указания блока, описывающего программы, запускаемые после установки INF-файла, используется ключевое слово RunPostSetupCommands. Посмотрим на пример использования этих ключевых слов.
Приведенный в листинге 15.10 INF-файл перед своей установкой вызывает Калькулятор, а потом — стандартный командный интерпретатор Windows. После своей установки он вызовет диалоговое окно с вопросом о перезагрузке компьютера. Конечно, это окно принадлежит Internet Explorer, но зато оно работает.
ПРИМЕЧАНИЕ
Вопрос о перезагрузке компьютера можно было вызвать и с помощью флагов вызова INF-файла, но в листинге специально были использованы команды rundll32.exe.
Не забывайте также, что данный INF-файл не выполнится после выбора команды Установить контекстного меню INF-файла. Для его установки придется воспользоваться командой RunDll32 advpack.dll, LaunchINFSection d:\1.INF, DefaultInstall. Здесь d:\1.INF соответствует пути к INF-файлу и его названию.
Вывод сообщения перед установкой
Перед установкой INF-файла или после нее можно вывести окно сообщения с произвольным текстом. Диалог сообщения, выводимый перед установкой, позволяет эту установку отменить. Он содержит две кнопки — OK и Отмена. Если нажать кнопку Отмена, то установка INF-файла будет отменена. Диалог сообщения, выводимый после установки, является информационным и имеет только одну кнопку — OK.
Чтобы вывести диалоговое окно перед установкой, необходимо воспользоваться ключевым словом BeginPrompt (окно сообщения будет выведено до вызова программ, описанных ключевым словом RunPreSetupCommands), а чтобы вывести окно сообщения после установки, нужно воспользоваться ключевым словом EndPrompt. В листинге 15.11 приведен простой пример использования как окна сообщения, выводимого перед установкой, так и окна сообщения, выводимого после установки.