Скрипт открытия оснастки Windows (диспетчер устройств, службы Windows…)

Скрипт открытия оснастки Windows (диспетчер устройств, службы Windows…) Примеры скриптов и макросов для Word и WSH

В этой статье мы поверхностно рассмотрим примеры запуска файлов с расширение msc, или просто оснастки. Так, к ним относятся такие сервисы как дефрагментация диска, службы Windows, Диспетчер устройств и так далее. Но, сперва немного лирики…

Что бы запустить диспетчер устройств из командной строки достаточно прописать строку mmc devmgmt.msc или просто devmgmt.msc. аналогичную команду можно прописать в меню Пуск/Выполнить. Однако моя широкая фантазия не терпит лишь запуска диспетчера устройств через командную строку, и требует чего больше, а именно: как и в прошлых публикациях, мы будим писать код на обоих языках (vbscript и jscript). Задача сценария – создать форму, на которой будет выпадающий список некоторых оснасток и кнопку, которая будет запускать выбранный элемент. Как и прежде, для создания оконного интерфейса мы воспользуемся компонентом WindowSystemObject, а для запуска файла – функцией Run объекта WScript.Shell.

Ну что же, приступим…

' ***********************************************************' Открытие заданной оснастки, например,' запускаем диспетчер устройств из командной строки' osnastki.vbs' ***********************************************************OptionExplicit dim f, t, mmc_box, Button_Opendim WshShell, WSO '******************************************************************'            создаем ссылки на объектыset WshShell = WScript.CreateObject("Wscript.Shell")set WSO = WScript.CreateObject("Scripting.WindowSystemObject"'*******************************************************************'            создаем формуset f = WSO.CreateForm(0, 0, 0, 0, WSO.Translate("WS_CONTROLBOX | WS_MINIMIZEBOX"))f.Text = "Открытие оснастки Windows"f.ClientWidth = 400f.ClientHeight = 100f.CenterControl() '***********************************************************************'                         элементы формы' текстовая меткаf.TextOut 10,10,"Список оснасток:"' списокset mmc_box = f.CreateComboBox(120,10,140,20,WSO.Translate("CBS_DROPDOWNLIST")) mmc_box.add("диспетчер устройств")mmc_box.add("управление компьютером")mmc_box.add("дефрагментация диска")mmc_box.add("журнал событий")mmc_box.add("службы Windows")mmc_box.ItemIndex=0'кнопка открытия оснастки, например,' диспетчер устройств из командной строкиset Button_Open = f.CreateButton(280,10,100,25,"Открыть")Button_Open.OnClick = Getref("Open_mmc"set t = f.CreateHyperLink(130,40,250,25,"www.scriptcoding.ru") f.Show()WSO.Run() ' функция для открытия оснастки, например' диспетчер устройств через командную строкуfunction Open_mmc()dim mmc     selectcase(mmc_box.ItemIndex)                 case 0                            mmc = "devmgmt.msc"                 case 1                            mmc = "compmgmt.msc"                 case 2                            mmc = "dfrg.msc"                 case 3                            mmc = "eventvwr.msc"                 caseelse                            mmc = "services.msc"     endselect     WshShell.Run "mmc " & mmcendfunction

Для создания списка мы используем функцию CreateComboBox, которая возвращает объект, о чем говорит ключевое слово set перед переменной mmc_box. Для добавления элементов в список используется функция Add, ей передается только один параметр – строковое значение, имя элемента. В нашем случае список будет содержать пять элементов (диспетчер устройств, управление компьютером, дефрагментация диска, журнал событий и службы Windows). Строка mmc_box.ItemIndex=0 определяет, какой элемент в списке будет выбран, в данном случаем элемент под номером ноль (нумерация идет с нуля).

Переменная Button_Open хранит в себе ссылку на объект, который отвечает за обработку кнопки на нашей форме, при нажатии на кнопку будет вызвана функция Open_mmc, которая в свою очередь, запускает выбранную оснастку, например, диспетчер устройств Windows из командной строки.

Open_mmc() – собственно, функция которая и правит балом, помним, что в vbscript мы ее вызываем как строковой параметр в функции GetRef, а в jscript – просто прописываем имя. В теле функции используется оператор выбора, select … case для vbscript или switch … case для jscript (обратите внимание на ключевое слово breake, если его не прописать, то будет происходить проверка всех значений в операторе выбора). В качестве параметра оператору передается индекс выбранного элемента, и в зависимости от значения, переменной mmc присваивается нужное имя файла.

Ну и напоследок, мы вызываем метод Run для запуска выбранного файла, например, диспетчера устройств Windows из командной строки.

// ***********************************************************// Открытие заданной оснастки, например,// запускаем диспетчер устройств из командной строки// osnastki.js// *********************************************************** var f, t, mmc_box, Button_Open; //******************************************************************//            создаем ссылки на объектыvar WshShell = WScript.CreateObject("Wscript.Shell");var WSO = WScript.CreateObject("Scripting.WindowSystemObject"); //*******************************************************************//            создаем формуvar f = WSO.CreateForm(0,0,0,0, WSO.Translate("WS_CONTROLBOX | WS_MINIMIZEBOX"));with(f){     Text ="Открытие оснастки Windows";     ClientWidth =400;     ClientHeight =100;     CenterControl();} //***********************************************************************//                         элементы формы// текстовая меткаf.TextOut(10,10,"Список оснасток:");// списокmmc_box = f.CreateComboBox(120,10,140,20,WSO.Translate("CBS_DROPDOWNLIST"));      mmc_box.add("диспетчер устройств");mmc_box.add("управление компьютером");mmc_box.add("дефрагментация диска");mmc_box.add("журнал событий");mmc_box.add("службы Windows");mmc_box.ItemIndex=0;//кнопка открытия оснастки, например,// диспетчер устройств из командной строкиButton_Open = f.CreateButton(280,10,100,25,"Открыть");Button_Open.OnClick= Open_mmc; t = f.CreateHyperLink(130,40,250,25,"www.scriptcoding.ru"); f.Show();WSO.Run(); // функция для открытия оснастки, например// диспетчер устройств через командную строкуfunction Open_mmc(){var mmc;     switch(mmc_box.ItemIndex){                 case0:                            mmc ="devmgmt.msc";                            break;                 case1:                            mmc ="compmgmt.msc";                            break;                 case2:                            mmc ="dfrg.msc";                            break;                 case3:                            mmc ="eventvwr.msc";                            break;                 default:                            mmc ="services.msc";     }     WshShell.Run("mmc "+ mmc);}

Скачать архив с примерами

Вообще, по теме оснасток Windows следовало бы написать отдельную статью, но, меня пока в область программирования занесло, да и сутки уже не спал… Лады, лирике конец, пишите через комментарии, если есть вопросы, ключевой фразой статьи было «диспетчер устройств из командной строи«. :smile:

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий