Вверх ↑
Этот топик читают: Гость
Ответов: 32
Рейтинг: 1
#1: 2013-08-06 09:52:39 ЛС | профиль | цитата
WinExec открывает внешние программы, а как их закрыть?
карма: 1

0
Ответов: 4630
Рейтинг: 749
#2: 2013-08-06 15:02:00 ЛС | профиль | цитата
Подать идентификатор процесса на EnumProcess.doFindID, затем сделать EnumProcess.doKill. Только штатный WinExec не выдаёт идентификатор процесса.
карма: 26

0
Ответов: 32
Рейтинг: 1
#3: 2013-08-06 16:50:28 ЛС | профиль | цитата
Netspirit, получается штатными модулями HiAsm - ни как?
карма: 1

0
Ответов: 4630
Рейтинг: 749
#4: 2013-08-06 17:04:19 ЛС | профиль | цитата
Можно найти процесс с помощью EnumProcess или WinEnum, если известно, по каким критериям искать.
Но если очень нужно - возьми здесь мою модификацию WinExec (второй пост на первой странице). Добавил точку ProcessID.
карма: 26

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#5: 2013-08-06 17:10:23 ЛС | профиль | цитата
Netspirit писал(а):
Добавил точку ProcessID

Интересно, надо будет посмотреть
карма: 22

0
Ответов: 32
Рейтинг: 1
#6: 2013-08-06 17:33:15 ЛС | профиль | цитата
nesco, и очень полезно)

карма: 1

0
Ответов: 8928
Рейтинг: 823
#7: 2013-08-06 18:01:43 ЛС | профиль | цитата
nesco писал(а):
Интересно, надо будет посмотреть

nesco, надо было смотреть
карма: 19

0
Ответов: 4630
Рейтинг: 749
#8: 2013-08-06 18:17:17 ЛС | профиль | цитата
Леонид, ну, раньше он не мог этого видеть: я точку только несколько часов назад добавил
карма: 26

1
Голосовали:suslik-101
Ответов: 32
Рейтинг: 1
#9: 2013-08-07 09:45:08 ЛС | профиль | цитата
Netspirit, спасибо)
------------ Дoбавленo в 09.45:
Netspirit, я тут малость недогоняю) можешь на примере показать работу твоего WinExec на закрытие приложения?
Так быстрее доходит))
карма: 1

0
Ответов: 4630
Рейтинг: 749
#10: 2013-08-07 11:24:15 ЛС | профиль | цитата
code_31555.txt
карма: 26

0
файлы: 1code_31555.txt [675B] [405]
Ответов: 32
Рейтинг: 1
#11: 2013-08-07 11:45:16 ЛС | профиль | цитата
Netspirit, понятно, и созрел ещё один вопрос!))
в этом варианте если запущенный процесс убит или вовсе не запущен то обрубается процесс самой программки - есть ли вариант сделать фокусировку только на один процесс (тот что запускается через неё)?
И ещё раз спасибо)
карма: 1

0
Ответов: 4630
Рейтинг: 749
#12: 2013-08-07 11:50:45 ЛС | профиль | цитата
Это глюк компонента EnumProcess при попытке убить процесс, которого уже несуществует. Можно сделать костыль: после doKill обнулять ProcessID (добавить дополнительно Memory).
карма: 26

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#13: 2013-08-07 11:56:25 ЛС | профиль | цитата
Netspirit писал(а):
Это глюк компонента EnumProcess при попытке убить процесс, которого уже несуществует

Попробуйте использовать doTerminateApp
карма: 22

0
Ответов: 1376
Рейтинг: 197
#14: 2013-08-07 12:19:44 ЛС | профиль | цитата
suslik-101, а так что не нравится?
code_31557.txt
карма: 1

0
файлы: 1code_31557.txt [664B] [244]
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)