Книга: 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="Запущенные процессыnn";
//Цикл по всем элементам коллекции
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="Запущенные процессыnn";
//Цикл по всем элементам коллекции
while (!Processes.atEnd()) {
//Извлекаем текущий элемент коллекции (запущенный процесс)
Process=Processes.item();
//Формируем строку с именами процессов
SList+=Process.Name+"n";
//Переходим к следующему элементу коллекции
Processes.moveNext();
}
//Выводим информацию на экран
WScript.Echo(SList);
/************* Конец *********************************************/
- Список основных источников информации
- Список литературы
- Список использованной литературы
- Список рекомендуемой литературы
- Из области уведомлений вдруг пропадают значки запущенных программ
- Где просмотреть список программ, установленных на моем компьютере?
- На всех дисках моего компьютера есть папка System Volume Information. Для чего она нужна?
- 9.4.1. Список контроля доступа
- Листинг 9.1. Список acl-правил, описанных по умолчанию в конфигурационном файле
- Листинг 8.2. Общий код, используемый во всех приведенных ниже вариантах тестов
- Список кораблей
- Контрольный список