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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

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

Сообщение gopstop2007 »

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

Спасибо за внимание.
С10 ABC, windows 10
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

В ABC-Free есть шаблон "apiTerminateProcess". Возможно то.
В шаблоне SV "Add functionality to the frame" есть проверка на уже запущенный экземпляр. Тоже можно посмотреть.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Я чаще выношу такой функционал в отдельный exe и запускаю из основного приложения в виде процесса. Если процесс не завершился за заданное время, то основное приложение автоматически прибивает его.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

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

Сообщение Дед Пахом »

Я использую 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
С уважением, ДП
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Требует права админа? Как я понял, com интерфейс или через генерацию скрипта.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

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

Сообщение Admin »

Тут можно посмотреть. Что то такое делали...
Вложения
killbill.zip
(18.87 КБ) 199 скачиваний
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

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

Сообщение Admin »

finsoftrz писал(а): 27 Июль 2020, 12:32 Как я понял, com интерфейс
Пора привыкнуть что Дед Пахом постоянно свой продукт рекламирует. :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

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

Сообщение gromov »

Ненаввязчиво так ... :D
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

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

Сообщение Дед Пахом »

Я мог бы чей-нибудь ещё продукт прорекламировать, да нет ничего, одни картинки да заплатки.
С уважением, ДП
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

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

Сообщение gopstop2007 »

Admin писал(а): 28 Июль 2020, 3:28 Тут можно посмотреть. Что то такое делали...
Спасибо огромное, вроде самое простое. Только как правильно сделать, чтобы работало без проблем. Процедура находиться в основном app.exe файле, при запуске проверяет наличие запущенного app.exe или делается отдельный killbil.ехе который запускается перед запуском основного app.exe?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

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

Сообщение 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 и запускаю из основного приложения в виде процесса. Если процесс не завершился за заданное время, то основное приложение автоматически прибивает его.
Спасибо, интересная мысль, если бы ничего не предложили пришлось бы этим заняться :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

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

Сообщение Admin »

gopstop2007 писал(а): 28 Июль 2020, 16:13Только как правильно сделать, чтобы работало без проблем.
Не знаю что вам нужно. У один exe сносит другой.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение 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)
C6/C11, ШВС, tps/btrieve.
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

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

Сообщение 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
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить