Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Батник отслеживающий и убивающий процесс

Ответить
Настройки темы
CMD/BAT - [решено] Батник отслеживающий и убивающий процесс

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Gragl
Дата: 26-04-2019
Доброго времени!
Есть программа, которая через некоторое время после старта запускает дополнительный процесс который отнимает время для загрузки в программу всяких ненужностей
Я хотел бы чтоб батник отследил запуск этого ненужного процесса убил бы его и закрыл бы свое окошко.

Я сделал вот такой вариант, но не могу отследить точное время когда запускается процесс, если не успеваю на три секунды убить процесс то он успевает подгрузить в программу ненужные мне вещи.


start "" "C:\Program Files (x86)\Matrix90\Matrix90.exe"
timeout /t 30
taskkill /f /im MatrixStartup.exe

Процесс начинает работать примерно с 25 по 30 секунды после старта программы Бывает и через 27 сек а бывает и ровно через 30.
Вот в этом интервале я хотел бы чтоб батник искал и пытался убить бы этот процесс через каждые 0.5 секунды.

Отправлено: 08:41, 26-04-2019

 

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Благодарю всех за Вашу поддержку!
Буду пользоваться VBS by Iska

Отправлено: 09:20, 29-04-2019 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1164
Благодарности: 486

Профиль | Отправить PM | Цитировать


Ну тогда ещё вариант на powershell, с возможностью слежения за несколькими процессами, с кнопкой на прекращение слежения (процесс powershell через батник запускается в скрытом режиме):
run.bat
Код: Выделить весь код
@echo off
powershell -ex bypass -w hidden -c "&{.\script.ps1 'notepad.exe','win32calc.exe'}"
script.ps1
script.ps1
Код: Выделить весь код
[cmdletbinding()]
param(
	# Список на выключение можно задать в командной строке: 
	# .\script.ps1 'notepad.exe','win32calc.exe'
	# или здесь:
	[string[]]$process = ('example1.exe','win32calc.exe')
)
add-type -assembly system.windows.forms

function enable-watchevent {
	$query = new-object system.management.wqleventquery '__instancecreationevent', `
	(new-object timespan 0,0,1),'targetinstance isa "win32_process"'
	$processwatcher = new-object system.management.managementeventwatcher $query
	$action = {
		new-event 'powershell.processcreated' -sender $sender -eventarguments $eventargs.newevent.targetinstance
	}
	$script:name = 'watchevent'
	$script:id = 'powershell.processcreated'
	$script:job = register-objectevent -input $processwatcher -eventname `
	"eventarrived" -action $action -source $name

}
enable-watchevent


$form = new-object windows.forms.form
$form.autosize = $true
$form.autosizemode = [windows.forms.autosizemode]::growandshrink
$form.formborderstyle = [windows.forms.formborderstyle]::fixedtoolwindow
$form.controlbox = $false
$form.sizegripstyle = [windows.forms.sizegripstyle]::hide
$form.text = 'Продолжить слежение за процессом' + ' ' + $process + '?'
$form.showintaskbar = $false
$form.topmost = $true
$form.startposition = 'CenterScreen'


$btnyes = new-object windows.forms.button
$btnyes.text = 'Да'
$btnyes.location = new-object system.drawing.point(3,10)
$btnyes.dialogresult = [windows.forms.dialogresult]::ok
$form.controls.add($btnyes)

$btnno = new-object windows.forms.button
$btnno.text = 'Нет'
$btnno.location = new-object system.drawing.point(110,10)
$btnno.dialogresult = [windows.forms.dialogresult]::no
$form.controls.add($btnno)

do{
	wait-event $id|out-null
	if($process -contains ($a = (get-event $id).sourceargs.name)){
		write-host Запущен $a
		ps $($a -replace '\.[^\n\.]*$')|kill
		remove-event $id
		$res = $form.showdialog()
	} else {
		write-host Это не процесс из списка на выключение `((get-event $id).sourceargs.name`)
		remove-event $id
	}

} while ($res -ne 'No')
if(get-event $id -ea 0){remove-event $id}
get-job $job.name|remove-job -force

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 29-04-2019 в 16:32.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:24, 29-04-2019 | #32


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


YuS_2, «win32calc.exe» — это, случайно, не новое имя исполняемого файла старого доброго Калькулятора под ОС Windows 10?

Отправлено: 16:29, 29-04-2019 | #33


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1164
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Iska:
новое имя исполняемого файла старого доброго Калькулятора под ОС Windows 10? »
оно самое

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:39, 29-04-2019 | #34


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


YuS_2, спасибо, ясно. А то я там на днях по привычке сделал Win-R, calc.exe, Enter и был неприятно удивлён результатом.

Отправлено: 17:16, 29-04-2019 | #35


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1164
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Iska:
А то я там на днях по привычке сделал Win-R, calc.exe, Enter и был неприятно удивлён результатом. »
calc.exe тоже присутствует, для обратной совместимости, но это только заглушка для запуска win32calc.exe
в общем, скучать индусы не дадут.

-------
scio me nihil scire. Ѫ


Отправлено: 18:35, 29-04-2019 | #36


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


YuS_2, стоп. Говоря «старый и добрый», я имел в виду обычный Калькулятор, а не его богомерзкую Modern (или как оно там нынче именуется) инкарнацию:
Скрытый текст

Получается — его больше нет?

Отправлено: 20:28, 29-04-2019 | #37


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1164
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Iska:
а не его богомерзкую Modern (или как оно там нынче именуется) инкарнацию »
не знаю... у меня такой:

-------
scio me nihil scire. Ѫ


Отправлено: 20:50, 29-04-2019 | #38


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Хмм… Попробую завтра «пощупать».

Отправлено: 20:59, 29-04-2019 | #39



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Батник отслеживающий и убивающий процесс

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - батник сообщение kairox@vk Скриптовые языки администрирования Windows 7 14-10-2014 15:24
Любой язык - [решено] батник с автозагрузкой в реестр. Чтоб при загрузке загружался батник с автозагрузкой AndriuT Скриптовые языки администрирования Windows 10 01-08-2014 20:10
VBS/WSH/JS - [решено] Открыть привод, корректно убить процесс, закрыть привод и снова убить процесс - как? Nun-Nun Скриптовые языки администрирования Windows 8 31-10-2011 15:25
CMD/BAT - Батник который закрывает процесс nullnull_ru Скриптовые языки администрирования Windows 2 21-01-2011 05:22
Вопрос - [решено] Вирус убивающий флешки.Руководство к действию. Мартиша Накопители (SSD, HDD, USB Flash) 16 07-10-2010 19:59




 
Переход