C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Передача сигналов между приложениями
KolyaN
Отправлено: 26.09.2003, 02:27


Не зарегистрирован







Из моей программы с помощью функции ShellExecute() запускается редактор, например Word, и в нем открывается документ. Необходимо по закрытию запущенного редактора выполнить некое действие. Подскажите как можно отловить момент закрытия.
Borgir
Отправлено: 26.09.2003, 06:16


Дежурный стрелочник

Группа: Участник
Сообщений: 48



Хороший кстати вопрос. Самое тупое и простое решение, которое пришло мне на ум — это запустить таймер и проверять им открыт Ворд или нет. Потому что как ловить события Ворда я не знаю.
Георгий
Отправлено: 26.09.2003, 08:22


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



а причём тут сигналы?

Можно сделать свой поток, который выполняет запуск нужной программы с ожиданием завершения, и как только запущенная программа завершится, он устанавливает какой-нибудь признак, что программа успешно (не успешно) отработала.
Запуск программы с ожиданием завершения точно умеет делать spawn**, а для shellexecute, наверное, придётся сделать так — вызывать не функцию shellexecute, а программу start.
Admin
Отправлено: 26.09.2003, 10:35


Владимир

Группа: Администратор
Сообщений: 1190



Наверное лучше запустить Word не по ShellExecute().
а через CreateProcess():

Запускайте не через ShellExecute(), а через CreateProcess() завершаете ExitProcess(), узнать о завершении можно GetExitCodeProcess()

Вернуться в Вопросы программирования в C++Builder