Войти

Показать полную графическую версию : [решено] Батник отслеживающий и убивающий процесс


Страниц : 1 [2]

Gragl
28-04-2019, 05:44
Моя рабочая система W8.1 (64)
На ней не работает Ваш код
Все другие батники на этой системе работают хорошо.


Проверил свой же код на W7 64 Прекрасно работает
Ваш оригинал тоже работает хорошо.


В чем же может быть причина неправильной работы на моей W8.1 (64) ?
Обработчик команд Windows C:\Windows\System32\cmd.exe

alpap
28-04-2019, 11:07
причина неправильной работы на моей W8.1 (64) ? »
и все же попробуйте с заменой на: >nul ping -n 2 127.0.0.1
может пиратка урезанная какая-то, там такой код что и нечему не работать просто.

Gragl
28-04-2019, 13:48
не работает
Пишет что "■t" не является внутренней или внешней командой.
W8.1 64 корпоративная

Iska
28-04-2019, 14:08
Gragl, упакуйте Ваш получившийся пакетный файл в архив, каковой выложите на DropMeFiles.com.

Gragl
28-04-2019, 16:50
https://dropmefiles.com/y0tU4

Iska
28-04-2019, 17:17
Gragl, это файлы именно с машины с Windows 8.1?

Gragl
28-04-2019, 19:23
да, с этого компьютера.
проверял их на W7. там работают.

Iska
28-04-2019, 19:50
Gragl, спасибо, ясно. Идей нет.

habib2302
28-04-2019, 21:28
как вариант можно сделать на autoit'е с контролем и завершением процесса. При этом процесс опрашивается приблизительно каждые 250 миллисекунд. И потом добавить скрипт в планировщик заданий с запуском скрипта при старте системы

Iska
28-04-2019, 22:33
habib2302, это уже есть в теме. Без использования сторонних средств, на WSH.

Gragl
29-04-2019, 09:20
Благодарю всех за Вашу поддержку!
Буду пользоваться VBS by Iska

YuS_2
29-04-2019, 16:24
Ну тогда ещё вариант на powershell, с возможностью слежения за несколькими процессами, с кнопкой на прекращение слежения (процесс powershell через батник запускается в скрытом режиме):
run.bat
@echo off
powershell -ex bypass -w hidden -c "&{.\script.ps1 'notepad.exe','win32calc.exe'}"

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

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

YuS_2
29-04-2019, 16:39
новое имя исполняемого файла старого доброго Калькулятора под ОС Windows 10? »
оно самое :)

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

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

Iska
29-04-2019, 20:28
YuS_2, стоп. Говоря «старый и добрый», я имел в виду обычный Калькулятор, а не его богомерзкую Modern (или как оно там нынче именуется) инкарнацию:
https://store-images.microsoft.com/image/apps.19928.9007199266248474.fa5af5f2-3973-4844-ae2e-eed362037b6b.2aa7645d-f58a-4249-b132-0f4fa35f8b44
Получается — его больше нет?

YuS_2
29-04-2019, 20:50
а не его богомерзкую Modern (или как оно там нынче именуется) инкарнацию »
не знаю... у меня такой:
https://jpegshare.net/thumbs/4c/49/4c49434d9f7a58c67c683f502b7cc3e8.jpg (https://jpegshare.net/4c/49/4c49434d9f7a58c67c683f502b7cc3e8.png.html)https://jpegshare.net/thumbs/b7/74/b774f678c370c94282d691f25727fb5b.jpg (https://jpegshare.net/b7/74/b774f678c370c94282d691f25727fb5b.png.html)

Iska
29-04-2019, 20:59
Хмм… Попробую завтра «пощупать».




© OSzone.net 2001-2012