Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Список всех запущенных процессов 

В следующих двух примерах мы будем работать с запущенными в операционной системе процессами.

Создадим сценарий ListProcesses.js, который будет выводить на экран имена всех запущенных процессов (рис. 11.29).

Рис. 11.29. Список всех запущенных в системе процессов

Первое, что необходимо сделать в сценарии — подключиться

к службе Windows Management service, т.е. создать корневой элемент WMI, который содержит в себе все остальные. 

Для этого в качестве параметра функции

GetObject
указывается "
winMgmts:
"; в нашем примере мы соединяемся с WMI внутри блока
try
, что позволяет обработать возможные исключительные ситуации:

try {

 //Соединяемся с WMI

 WMI=GetObject("winMgmts:");

} catch (e) {

 //Обрабатываем возможные ошибки

 if (е != 0) {

//Выводим сообщение об ошибке

Mess="Ошибка при соединении с WMI";

WshShell.Popup(Mess, 0, "Запущенные процессы", vbCritical);

//Выходим из сценария

WScript.Quit;

 }

}

Запущенным процессам соответствует класс

Process
схемы
Win32
. Коллекция всех процессов создается с помощью выполнения следующего SQL-запроса:

SELECT * FROM Win32 Process

Таким образом, можно сказать, что класс

Win32_Process
является аналогом таблицы базы данных; сам запрос выполняется с помощью метода
ExecQuery
:

Processes=new Enumerator(WMI.ExecQuery("SELECT * FROM Win32_Process"));

После создания коллекции мы просматриваем в цикле

while
все ее элементы, каждый из которых соответствует одному процессу, и добавляем имя процесса, хранящееся в свойстве
Name
, к переменной
SList
:

//Инициализируем строку SList

SList="Запущенные процессы\n\n";

//Цикл по всем элементам коллекции

while (!Processes.atEnd) {

 //Извлекаем текущий элемент коллекции (запущенный процесс)

 Process=Processes.item;

 //Формируем строку с именами процессов

 SList+=Process.Name+"\n";

 //Переходим к следующему элементу коллекции

 Processes.moveNext;

}

После выхода из цикла переменная

SInfo
выводится на экран с помощью метода
Echo
объекта
WScript
:

WScript.Echo(SInfo);

Полностью текст сценария ListProcesses.js приведен в листинге 11.21.

Листинг 11.21. Вывод на экран списка всех запущенных процессов

/********************************************************************/

/* Имя: ListProcesses.js */

/* Язык: JScript */

/* Описание: Вывод на экран списка всех запущенных на локальной */

/* рабочей станции процессов */

/********************************************************************/

var

 WMI, //Экземпляр WMI

 Processes, //Коллекция процессов

 Process, //Экземпляр коллекции

 SList; //Строка для вывода на экран

//Инициализируем константы для диалоговых окон

var vbCritical=16;

try {

 //Соединяемся с WMI

 WMI=GetObject("winMgmts:");

} catch (e) { //Обрабатываем возможные ошибки

 if (e != 0) {

//Выводим сообщение об ошибке

Mess="Ошибка при соединении с WMI";

WshShell.Popup(Mess,0,"Запущенные процессы",vbCritical);

//Выходим из сценария

WScript.Quit;

 }

}

//Создаем коллекцию всех запущенных процессов

Processes=new Enumerator(WMI.ExecQuery("SELECT * FROM Win32_Process"));

//Инициализируем строку SList

SList="Запущенные процессы\n\n";

//Цикл по всем элементам коллекции

while (!Processes.atEnd) {

 //Извлекаем текущий элемент коллекции (запущенный процесс)

 Process=Processes.item;

 //Формируем строку с именами процессов

 SList+=Process.Name+"\n";

 //Переходим к следующему элементу коллекции

 Processes.moveNext;

}

//Выводим информацию на экран

WScript.Echo(SList);

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

Закрытие всех экземпляров запущенного приложения

Поделиться:
Популярные книги

Сильнейший ученик. Том 2

Ткачев Андрей Юрьевич
2. Пробуждение крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сильнейший ученик. Том 2

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Новик

Ланцов Михаил Алексеевич
2. Помещик
Фантастика:
альтернативная история
6.67
рейтинг книги
Новик

Объединитель

Астахов Евгений Евгеньевич
8. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Объединитель

Сердце Дракона. нейросеть в мире боевых искусств (главы 1-650)

Клеванский Кирилл Сергеевич
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.51
рейтинг книги
Сердце Дракона. нейросеть в мире боевых искусств (главы 1-650)

Возвращение

Кораблев Родион
5. Другая сторона
Фантастика:
боевая фантастика
6.23
рейтинг книги
Возвращение

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Магнатъ

Кулаков Алексей Иванович
4. Александр Агренев
Приключения:
исторические приключения
8.83
рейтинг книги
Магнатъ

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Мерзавец

Шагаева Наталья
3. Братья Майоровы
Любовные романы:
современные любовные романы
эро литература
короткие любовные романы
5.00
рейтинг книги
Мерзавец

Я еще граф

Дрейк Сириус
8. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще граф

Законы Рода. Том 4

Flow Ascold
4. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 4