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

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

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

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

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

' ***********************************************************
' Открытие заданной оснастки, например,
' запускаем диспетчер устройств из командной строки
' osnastki.vbs
' ***********************************************************
Option Explicit
 
dim f, t, mmc_box, Button_Open
dim 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 = 400
f.ClientHeight = 100
f.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,"scriptcoding.ru")
 
f.Show()
WSO.Run()
 
' функция для открытия оснастки, например
' диспетчер устройств через командную строку
function Open_mmc()
dim mmc
     select case(mmc_box.ItemIndex)
                 case 0
                            mmc = "devmgmt.msc"
                 case 1
                            mmc = "compmgmt.msc"
                 case 2
                            mmc = "dfrg.msc"
                 case 3
                            mmc = "eventvwr.msc"
                 case else
                            mmc = "services.msc"
     end select
     WshShell.Run "mmc " & mmc
end function

Для создания списка мы используем функцию 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,"scriptcoding.ru");
 
f.Show();
WSO.Run();
 
// функция для открытия оснастки, например
// диспетчер устройств через командную строку
function Open_mmc(){
var mmc;
     switch (mmc_box.ItemIndex){
                 case 0:
                            mmc = "devmgmt.msc";
                            break;
                 case 1:
                            mmc = "compmgmt.msc";
                            break;
                 case 2:
                            mmc = "dfrg.msc";
                            break;
                 case 3:
                            mmc = "eventvwr.msc";
                            break;
                 default:
                            mmc = "services.msc";
     }
     WshShell.Run("mmc " + mmc);
}

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

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

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