Страница 1 из 1

Убить приложение (процесс) в панели задач.

Добавлено: 27 Июль 2020, 10:23
gopstop2007
Периодически приложение, которое связывается с удаленным сервером не запускается (в силу многих причин, плохая связь или криворукости пользователей при использования ноутбука) и остается "висеть" в панели задач.
Как с помощью клариона при запуске следующего экземпляра приложение проверять наличие "висящего" приложения в панели задач, убить его и продолжить дальнейшую загрузку или ... (возможны варианты)
Кто сталкивался и знает решения, подскажите пожалуйста.

Спасибо за внимание.
С10 ABC, windows 10

Убить приложение (процесс) в панели задач.

Добавлено: 27 Июль 2020, 10:32
kreator
В ABC-Free есть шаблон "apiTerminateProcess". Возможно то.
В шаблоне SV "Add functionality to the frame" есть проверка на уже запущенный экземпляр. Тоже можно посмотреть.

Убить приложение (процесс) в панели задач.

Добавлено: 27 Июль 2020, 11:28
finsoftrz
Я чаще выношу такой функционал в отдельный exe и запускаю из основного приложения в виде процесса. Если процесс не завершился за заданное время, то основное приложение автоматически прибивает его.

Убить приложение (процесс) в панели задач.

Добавлено: 27 Июль 2020, 11:52
Дед Пахом
Я использую wmi:

Код: Выделить всё

    !- найдём процессы с именем pProcess
    wmi.ExecQuery(printf('Select * from Win32_Process WHERE Caption=%S', pProcess))
    !- убъём их всех
    LOOP i=1 TO wmi.items.Count()
      wmi.items.CallMethod(i, 'Terminate')
    END

Убить приложение (процесс) в панели задач.

Добавлено: 27 Июль 2020, 12:32
finsoftrz
Требует права админа? Как я понял, com интерфейс или через генерацию скрипта.

Убить приложение (процесс) в панели задач.

Добавлено: 28 Июль 2020, 3:28
Admin
Тут можно посмотреть. Что то такое делали...

Убить приложение (процесс) в панели задач.

Добавлено: 28 Июль 2020, 3:31
Admin
finsoftrz писал(а): 27 Июль 2020, 12:32 Как я понял, com интерфейс
Пора привыкнуть что Дед Пахом постоянно свой продукт рекламирует. :)

Убить приложение (процесс) в панели задач.

Добавлено: 28 Июль 2020, 7:49
gromov
Ненаввязчиво так ... :D

Убить приложение (процесс) в панели задач.

Добавлено: 28 Июль 2020, 8:44
Дед Пахом
Я мог бы чей-нибудь ещё продукт прорекламировать, да нет ничего, одни картинки да заплатки.

Убить приложение (процесс) в панели задач.

Добавлено: 28 Июль 2020, 16:13
gopstop2007
Admin писал(а): 28 Июль 2020, 3:28 Тут можно посмотреть. Что то такое делали...
Спасибо огромное, вроде самое простое. Только как правильно сделать, чтобы работало без проблем. Процедура находиться в основном app.exe файле, при запуске проверяет наличие запущенного app.exe или делается отдельный killbil.ехе который запускается перед запуском основного app.exe?

Убить приложение (процесс) в панели задач.

Добавлено: 28 Июль 2020, 16:21
gopstop2007
kreator писал(а): 27 Июль 2020, 10:32 В ABC-Free есть шаблон "apiTerminateProcess". Возможно то.
В шаблоне SV "Add functionality to the frame" есть проверка на уже запущенный экземпляр. Тоже можно посмотреть.
первое - там еще дополнительно нужно еще по цепочке подключать, второе - не убивает, а просто закрывает приложение.
Дед Пахом писал(а): 28 Июль 2020, 8:44 Я мог бы чей-нибудь ещё продукт прорекламировать, да нет ничего, одни картинки да заплатки.
Все правильно делаете, где еще как не здесь?! Спасибо за предложение, просто из-за одного kill навешивать...
finsoftrz писал(а): 27 Июль 2020, 11:28 Я чаще выношу такой функционал в отдельный exe и запускаю из основного приложения в виде процесса. Если процесс не завершился за заданное время, то основное приложение автоматически прибивает его.
Спасибо, интересная мысль, если бы ничего не предложили пришлось бы этим заняться :)

Убить приложение (процесс) в панели задач.

Добавлено: 29 Июль 2020, 2:10
Admin
gopstop2007 писал(а): 28 Июль 2020, 16:13Только как правильно сделать, чтобы работало без проблем.
Не знаю что вам нужно. У один exe сносит другой.

Убить приложение (процесс) в панели задач.

Добавлено: 06 Июль 2021, 16:23
finsoftrz
Вот еще вариант запостили. Оставлю для коллекции.

Делаем файл taskkill.bat со следующим содержанием.

Код: Выделить всё

@echo off
c:\windows\system32\taskkill.exe /IM %1.exe /F /FI "STATUS EQ RUNNING" > nul
exit
Вызываем из своего кода.

Код: Выделить всё

run('cmd /c start /min taskkill.bat ' & myPrgName)

Убить приложение (процесс) в панели задач.

Добавлено: 06 Июль 2021, 20:49
gopstop2007
finsoftrz писал(а): 06 Июль 2021, 16:23 Вот еще вариант запостили. Оставлю для коллекции.

Делаем файл taskkill.bat со следующим содержанием.

Код: Выделить всё

@echo off
c:\windows\system32\taskkill.exe /IM %1.exe /F /FI "STATUS EQ RUNNING" > nul
exit
Вызываем из своего кода.

Код: Выделить всё

run('cmd /c start /min taskkill.bat ' & myPrgName)
возможно правильнее было бы taskkill.cmd