|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.05.2017, 14:58 | #11 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 751
|
Теперь я наконец-то понял, что Вам нужно! Нужно получить доступ к буферу ввода и буферу вывода, также нужно получить доступ к Handle этого окна. Я вообще не знаю возможно ли это, но что-то там возможно есть из тех функций, которые Вы перечисляли, ну где те функции в столбик. Понятно?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
09.05.2017, 15:08 | #12 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не надо ничего никуда посылать, сказал же уже, после запуска через CreateProcess можно и читать поток вывода, и писать в поток ввода.
Гуглите примеры по нему.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
09.05.2017, 15:25 | #13 |
Новичок
Джуниор
Регистрация: 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... Будем искать |
09.05.2017, 15:34 | #14 |
Новичок
Джуниор
Регистрация: 08.05.2017
Сообщений: 16
|
CloseHandle( Pi.hProcess );
А вот здесь уже проблема... Окно консоли вообще не закрывается... Даже после закрытия Windows-приложения, которое его создало при помощи CreateProcess... |
09.05.2017, 15:48 | #15 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
TerminateProcess
Ну или как-то нормально сообщить программе о том, что надо завершиться, если она это позволяет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
09.05.2017, 15:50 | #16 |
Новичок
Джуниор
Регистрация: 08.05.2017
Сообщений: 16
|
Правильно себя ведёт такой набор:
DWORD eCode; GetExitCodeProcess( Pi.hProcess, &eCode ); TerminateProcess( Pi.hProcess, eCode ); Windows-приложение остается, а консоль исчезает... |
09.05.2017, 15:56 | #17 |
Новичок
Джуниор
Регистрация: 08.05.2017
Сообщений: 16
|
Программа C1.exe "позволяет" ввести команду "quit"...
После этого она сама себя закрывает вместе с окном консоли... Сейчас как раз ищу варианты послать это самое "quit" из Form1, что полностью решит Write-проблему... Ну а потом Read... |
09.05.2017, 16:50 | #18 |
Новичок
Джуниор
Регистрация: 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(..) - ничего не происходит... |
09.05.2017, 17:11 | #19 |
Старожил
Регистрация: 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
ЛС отключены Аларом. |
09.05.2017, 17:11 | #20 |
Новичок
Джуниор
Регистрация: 08.05.2017
Сообщений: 16
|
Есть ещё WriteFileEx(...), где кроме записи в файл возможна запись "в консоль"...
Правда и HANDLE нужно получить при помощи CreateFile(...), а не CreateProcess(...) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запуск программы в консоли | 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 |