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;
}
/************* Конец *********************************************/
Поделиться:
Популярные книги
Страх
2. Дети Арбата
Проза:
историческая проза
9.49
рейтинг книги
Я все еще барон
4. Дорогой барон!
Фантастика:
боевая фантастика
5.00
рейтинг книги
Зодчий. Книга IV
4. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Кодекс Охотника. Книга XXXII
32. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Я еще князь. Книга XX
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Древесный маг Орловского княжества 3
3. Орловское княжество
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Враг из прошлого тысячелетия
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Путь к бессмертию 1
1. Девятихвостый Богатырь
Фантастика:
попаданцы
сказочная фантастика
фэнтези
5.00
рейтинг книги
Дважды одаренный. Том III
3. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
юмористическое фэнтези
5.00
рейтинг книги
Наномашины, звереныш! Том 5
5. Первый среди карапузов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Глэрд VIII: Базис 2
8. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Шайтан Иван 6
6. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
7.00
рейтинг книги
Хозяин Теней 3
3. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Горизонт Вечности
11. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00