Книга: Windows Script Host для Windows 2000/XP

Запуск с помощью системных функций Windows

Запуск с помощью системных функций Windows

Другим вариантом запуска модулей панели управления является использование специальных функций, находящихся в библиотечном файле shell32.dll. Хотя из сценариев нельзя напрямую вызывать системные функции Windows, для этой цели можно воспользоваться стандартной утилитой RunDll32.exe, которая позволяет запускать функции, хранящиеся в библиотечных dll-файлах. В свою очередь RunDll32.exe запускается в сценарии с помощью метода Run() объекта WshShell. В качестве параметров программы RunDll32.exe нужно через запятую указать имя dll-файла и имя вызываемой функции, например:

//Выводим окно установки Windows
WshShell.Run("Rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2");

Здесь мы вызываем функцию Control_RunDLL() из файла shell32.dll. В качестве же параметров функции Control_RunDLL() указываются через запятую название нужного cpl-файла, имя и индекс страницы модуля, которая будет выведена на передний план (в вышеприведенной команде вызывается страница с индексом 2 ("Установка Windows") из модуля appwiz.cpl ("Установка и удаление программ")).

В листинге 11.14 приведен сценарий RunCPL2.js, в котором вызовы модулей панели управления осуществляются с помощью запуска системных функций Windows.

Листинг 11.14. Вызов модулей панели управления с помощью вызовов системных функций

/*******************************************************************/
/* Имя: RunCPL2.js                                                 */
/* Язык: JScript                                                   */
/* Описание: Вызов модулей панели управления с помощью             */
/*           вызовов системных функций                             */
/*******************************************************************/
//Объявляем переменные
var
 WshShell, //Экземпляр объекта WshShell
 Res;      //Результат нажатия кнопок в диалоговом окне
//Инициализируем константы для диалоговых окон
var vbYesNo=4,vbQuestion=32,vbYes=6;
//Создаем объект WshShell
WshShell = WScript.CreateObject("WScript.Shell");
//Выводим запрос
Res=WshShell.Popup("Открыть панель управления?",0,
 "Вызов модулей панели управления",vbQuestion+vbYesNo);
if (Res==vbYes) //Нажата кнопка Да
 //Выводим панель управления
 WshShell.Run("Rundll32.exe shell32.dll,Control_RunDLL");
//Выводим запрос
Res=WshShell.Popup("Открыть окно установки Windows?",0,
 "Вызов модулей панели управления",vbQuestion+vbYesNo);
if (Res==vbYes) //Нажата кнопка Да
 //Выводим окно установки Windows
 WshShell.Run("Rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2");
//Выводим запрос
Res=WshShell.Popup("Открыть окно установки даты и времени?",0,
 "Вызов модулей панели управления",vbQuestion+vbYesNo);
if (Res==vbYes) //Нажата кнопка Да
 //Выводим окно установки даты и времени
 WshShell.Run("Rundll32.exe shell32.dll,Control_RunDLL timedate.cpl");
/*************  Конец *********************************************/
 

Оглавление книги


Генерация: 1.095. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз