C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли получить сообщения из консольного приложения? ( помощью ShellExecute)  (Прочитано 2438 раз)
Serj78
Участник
**

Сказали спасибо: +0/-0
Offline Offline

Сообщений: 9


« : 29 июня 2011, 18:31:18 »

Добрый день.
Прошу сильно не бить, ибо программирую меньше недели и опыта мало..

Пользуюсь функцией ShellExecute для запуска сторонней программы из файла с набором ключей (она работает с ком-портом, программирует внешнее устройство).

Сейчас я просто жду положенное время пока она отработает, запускаю ее в "закрытом" окне, чтобы ее не было видно - последний параметр функции  равен "SW_HIDE".
 
Однако, программа при какой- либо нестыковке  (если нет ответа от внешнего устройства на ком-порту)просит нажать клавишу. Этого сообщения, естественно, не видно.

Первый параметр функции описывает, кому передавать сообщения от запускаемой программы.. Сейчас у меня этот параметр=0.

Собственно вопрос- КАК принять эти сообщения и вывести их, например в message box?
Что должно быть вместо первого параметра? строковая переменная?  Cвойство объекта ( Caption)  типа label?

Возможно ли вообще так сделать или надо использовать другие функции?

Хотелось бы, чтобы показывались они там где мне удобно, а не в некрасивом черном окне.. Улыбка.

Далее, также вопрос- если я хочу закрыть выполняемую с помошью ShellExecute  программу до ее завершения - как это сделать?
« Последнее редактирование: 29 июня 2011, 19:04:16 от Serj78 » Записан
Rius
Давний друг
**

Сказали спасибо: +116/-5
Offline Offline

Сообщений: 753


WWW
« Ответ #1 : 29 июня 2011, 19:11:33 »

Попробуйте запускать через CreateProcess, тогда сможете получить консольный вывод программы.
Creating a Child Process with Redirected Input and Output
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: