Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2017, 14:58   #11
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Теперь я наконец-то понял, что Вам нужно! Нужно получить доступ к буферу ввода и буферу вывода, также нужно получить доступ к Handle этого окна. Я вообще не знаю возможно ли это, но что-то там возможно есть из тех функций, которые Вы перечисляли, ну где те функции в столбик. Понятно?
Cuprum5 на форуме Ответить с цитированием
Старый 09.05.2017, 15:08   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не надо ничего никуда посылать, сказал же уже, после запуска через CreateProcess можно и читать поток вывода, и писать в поток ввода.
Гуглите примеры по нему.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.05.2017, 15:25   #13
COREYCO
Новичок
Джуниор
 
Регистрация: 08.05.2017
Сообщений: 16
По умолчанию

STARTUPINFO Si;
PROCESS_INFORMATION Pi;

CreateProcess
(
"d:\\...\\C1.exe",
NULL,
NULL,
NULL,
true,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&Si,
&Pi
);

И это работает, т.е. в новом окне консоли запускается C1.exe
Осталось освоить Read/Write... Будем искать
COREYCO вне форума Ответить с цитированием
Старый 09.05.2017, 15:34   #14
COREYCO
Новичок
Джуниор
 
Регистрация: 08.05.2017
Сообщений: 16
По умолчанию

CloseHandle( Pi.hProcess );

А вот здесь уже проблема... Окно консоли вообще не закрывается...
Даже после закрытия Windows-приложения, которое его создало
при помощи CreateProcess...
COREYCO вне форума Ответить с цитированием
Старый 09.05.2017, 15:48   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

TerminateProcess

Ну или как-то нормально сообщить программе о том, что надо завершиться, если она это позволяет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.05.2017, 15:50   #16
COREYCO
Новичок
Джуниор
 
Регистрация: 08.05.2017
Сообщений: 16
По умолчанию

Правильно себя ведёт такой набор:

DWORD eCode;
GetExitCodeProcess( Pi.hProcess, &eCode );
TerminateProcess( Pi.hProcess, eCode );

Windows-приложение остается, а консоль исчезает...
COREYCO вне форума Ответить с цитированием
Старый 09.05.2017, 15:56   #17
COREYCO
Новичок
Джуниор
 
Регистрация: 08.05.2017
Сообщений: 16
По умолчанию

Программа C1.exe "позволяет" ввести команду "quit"...
После этого она сама себя закрывает вместе с окном консоли...

Сейчас как раз ищу варианты послать это самое "quit"
из Form1, что полностью решит Write-проблему...

Ну а потом Read...
COREYCO вне форума Ответить с цитированием
Старый 09.05.2017, 16:50   #18
COREYCO
Новичок
Джуниор
 
Регистрация: 08.05.2017
Сообщений: 16
По умолчанию

DWORD nWritten;
char ss[1000];

sprintf( ss, "quit\n" );

WriteConsole
(
??? // HANDLE hConsoleOutput,
ss,
strlen(ss),
&nWritten,
NULL
);


Интуитивно понимаю, что должен как-то
по Pi.hHandle консоли открытой CreateProcess(...)
получить hConsoleOutput того же типа HANDLE...

Если просто подставить Pi.hHandle в WriteConsole(..) -
ничего не происходит...
COREYCO вне форума Ответить с цитированием
Старый 09.05.2017, 17:11   #19
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не, это не то.
Вам в stdin писать надо, а не выводить что-то куда-то.
https://www.google.com/search?q=crea...write+to+stdin
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
http://stackoverflow.com/questions/2...-in-c-language
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.05.2017, 17:11   #20
COREYCO
Новичок
Джуниор
 
Регистрация: 08.05.2017
Сообщений: 16
По умолчанию

Есть ещё WriteFileEx(...), где кроме записи в файл возможна запись "в консоль"...

Правда и HANDLE нужно получить при помощи CreateFile(...),
а не CreateProcess(...)
COREYCO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск программы в консоли deniscatch Общие вопросы по Java, Java SE, Kotlin 2 04.08.2014 23:38
Запуск и чтение данных из консоли Random2 C++ Builder 0 26.02.2013 21:24
запуск сборки из консоли sergio11 C# (си шарп) 2 01.02.2013 13:39
Запуск приложения из консоли stpdqstns Visual C++ 4 04.11.2012 16:02
Запуск консоли и перенаправление вывода ros.pro Общие вопросы Delphi 1 02.01.2012 18:49