InqSEO
@InqSEO

Как принудительно завершить процесс другой программы?

Добрый день.
Я не программист, использую что нахожу в инете, прошу не пинать сильно. В общем, имеется программа "А", в которой заложена функция перезагрузки другой программы "Б" (ТерминалЫ MetaTrader4, они периодически подвисают и нужно перезагружать).
Пробовал прописать:
PostMessage(StrToInt(handleChart) , WM_KEYDOWN, 152, 0);

Он ее успешно закрывает, но запустить снова не может, т.к. терминал висит в процессах и не может выгрузится (не всегда такое происходит, примерно 1 из 10). Пока сам принудительно через диспетчер не снимешь процесс - запустить терминал не получится (Л-логика :D).
Поэтому решил отправлять запрос принудительной закрытие терминала через taskkill:
WinExec(PANsiChar('taskkill /F /IM terminal.exe'), SW_HIDE);

Ура, работает, НО терминал может быть запущен в нескольких экземплярах из разных папок и каждую из них нужно перезагружать в разное время.
Написал функцию, которая находит окно по имени и потом определяет путь к папке. Пути к папкам каждого терминала известны. Выглядят так:
C:\Program Files (x86)\terminal1\terminal.exe
C:\Program Files (x86)\terminal2\terminal.exe

Прописываю путь в код:
WinExec(PANsiChar('taskkill /F /IM '+accounts[i].MT4_Path), SW_HIDE);

accounts[i].MT4_Path - выводит путь к терминалу
Увы и ах, ничего не происходит. Программа не ругается даже, просто игнор.
Прописал прямой путь для теста:
WinExec(PANsiChar('taskkill /F /IM C:\Program Files (x86)\terminal1\terminal.exe'), SW_HIDE);

К сожалению, тоже самое.
В чем ошибка? Подскажите пожалуйста.
  • Вопрос задан
  • 362 просмотра
Решения вопроса 1
HemulGM
@HemulGM Куратор тега Delphi
Delphi Developer, сис. админ
Метод для завершения процесса:
vsokovikov.narod.ru/New_MSDN_API/Process_thread/fn...
Вывод списка процессов и поиск нужного:
www.delphibasics.info/home/delphibasicssnippets/en...

Всё остальное можешь найти тут:
www.delphibasics.info/home/delphibasicssnippets
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы