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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

WMI позволит нам закрывать сразу все экземпляры какого-либо запущенного приложения.

В сценарии KillNotepads.js мы будем закрывать все копии Блокнота (Notepad.exe). Как и в предыдущем примере, сначала мы соединяемся с WMI внутри блока

try
конструкции
try…catch
:

try {

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

 WMI=GetObject("winMgmts:");

} catch (e) {

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

 if (e != 0) {

//Выводим сообщение об ошибке Mess="Ошибка при соединении с WMI";

WshShell.Popup(Mess, 0, "Закрытие всех Блокнотов", vbCritical);

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

WScript.Quit;

 }

}

Далее нам нужно получить коллекцию всех процессов с именем "Notepad.exe". Для этого мы выполняем соответствующий SQL-запрос, текст которого предварительно заносится в переменную

SQuery
:

//Формируем текст запроса

SQuery="SELECT * FROM Wln32_Process WHERE Name='Notepad.exe'"

//Создаем коллекцию-результат запроса

Processes=new Enumerator(WMI.ExecQuery(SQuery));

Теперь, имея коллекцию нужных нам процессов, мы в цикле

while
перебираем все ее элементы, вызывая для каждого элемента (запущенного экземпляра Блокнота) метод
Terminate
, который завершает этот процесс:

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

while (!Processes.atEnd) {

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

 Process=Processes.item;

 try {

//Завершаем процесс

Process.Terminate;

 } catch (e) {

//Обрабатываем возможные ошибки if (e != 0) {

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

Mess="Ошибка при закрытии текущего экземпляра";

WshShell.Popup(Mess, 0, "Закрытие всех Блокнотов", vbCritical);

 }

}

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

Processes.moveNext;

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

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

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

/* Имя: KillNotepads.js */

/* Язык: JScript */

/* Описание: Закрытие всех запущенных экземпляров Блокнота */

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

var

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

 SQuery, //Текст запроса

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

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

 WshShell; //Объект WshShell

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

var vbCritical=16;

//Создаем объект WshShell

WshShell = WScript.CreateObject("WScript.Shell");

try {

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

 WMI=GetObject("winMgmts:");

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

 if (e != 0) {

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

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

WshShell.Popup(Mess,0,"Закрытие всех Блокнотов",vbCritical);

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

WScript.Quit;

 }

}

//Формируем текст запроса

SQuery="SELECT * FROM Win32_Process WHERE Name='Notepad.exe'"

//Создаем коллекцию-результат запроса

Processes=new Enumerator(WMI.ExecQuery(SQuery));

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

while (!Processes.atEnd) {

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

 Process=Processes.item;

 try {

//Завершаем процесс

Process.Terminate;

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

if (e != 0) {

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

Mess="Ошибка при закрытии текущего экземпляра";

WshShell.Popup(Mess,0,"Закрытие всех Блокнотов",vbCritical);

}

 }

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

 Processes.moveNext;

}

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

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

Воплощение Похоти

Некрасов Игорь
1. Воплощение Похоти
Фантастика:
юмористическое фэнтези
попаданцы
рпг
аниме
5.00
рейтинг книги
Воплощение Похоти

Слэпшот

Хоуп Ава
Невозможно устоять. Горячие романы Авы Хоуп
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Слэпшот

Локки 2. Потомок бога

Решетов Евгений Валерьевич
2. Локки
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Локки 2. Потомок бога

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2

Я уже царь. Книга XXIX

Дрейк Сириус
29. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я уже царь. Книга XXIX

Вперед в прошлое 9

Ратманов Денис
9. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 9

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5

Драчуны

Алексеев Михаил Николаевич
Проза:
советская классическая проза
5.00
рейтинг книги
Драчуны

Разведчик. Заброшенный в 43-й

Корчевский Юрий Григорьевич
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Разведчик. Заброшенный в 43-й

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Черный Маг Императора 23

Герда Александр
23. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 23

Последний Паладин. Том 14

Саваровский Роман
14. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.75
рейтинг книги
Последний Паладин. Том 14

Кодекс Охотника XXVIII

Винокуров Юрий
28. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника XXVIII