Форум: "Основная";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизЧтение с консоли Найти похожие ветки
← →
Steplerr © (2006-05-29 16:01) [0]Три дня уже бъюсь над такой делемой - как из своей программы прочитать текст выведенный на консоль ДРУГОЙ КОНСОЛЬНОЙ программы.
Максимум, чего удалось добиться - получить хэндлер (ConsoleWindowClass) и через SendMessage (и WM_SETTEXT) вывести в его заголовок текст, а как считать то текст с самой консоли!!!
Помогите плиз!!!
З.Ы. Вариант типа proga.exe > file.txt - не подойдёт!!!
← →
TUser © (2006-05-29 16:10) [1]Надо создать PIPE и читать через него. Подробности есть в Яндексе.
← →
Desdechado © (2006-05-29 16:11) [2]> Вариант типа proga.exe > file.txt - не подойдёт
почему?
а вариант proga1.exe | proga2.exe
?
← →
Steplerr © (2006-05-29 16:26) [3]Мне нужно обработать в определённый момент вывод консольной псевдографичесокой программы, а до этого момента нужно что-бы пользователь работал с ней как обычно.
← →
Eraser © (2006-05-29 16:36) [4]http://www.torry.net/quicksearchd.php?String=console&Title=Yes
"How to capture console application output"
"Redirect Console"
← →
Steplerr © (2006-05-29 17:44) [5]Спасибо за ссылку, много интересного узнал. Но чего-то я не соображу как организовать такую штуку:
Человек сидит и нормально работает с программой и в определённый момент запускает мою прогу, которая считывает кусочек текста с консоли выполняет кое-какую работу и благополучно закрывается, а консольная программа продолжает работать дальше.
З.Ы. Ещё раз спасибо Eraser за ссылку.
← →
Steplerr © (2006-05-29 17:59) [6]В хелпах нашёл раздел Console Functions с богатым ассортиментом (AllocConsole, CreateConsoleScreenBuffer,...,ReadConsole,...), актуальны ли они при работе с чужой консолью?
← →
Eraser © (2006-05-29 18:29) [7]
> Steplerr ©
кроме как указать свои дескрипторы в STARTUPINFO я другово способа не зна, но возможно такой способ есть, и даже не хакерский.
← →
Leonid Troyanovsky © (2006-05-29 22:20) [8]
> Eraser © (29.05.06 18:29) [7]
> кроме как указать свои дескрипторы в STARTUPINFO я другово
> способа не зна, но
Если запускающий создает процесс в своей консоле, то
возможности ширее.
--
Regards, LVT.
← →
Юрий Зотов © (2006-05-30 03:22) [9]Запускаем свою программу, та создает консоль и в ней запускает чужую, делая дескрипторы стандартного ввода-вывода наследуемыми - а в итоге получает доступ к буферам ввода-вывода чужой программы.
← →
Leonid Troyanovsky © (2006-05-30 05:25) [10]
> Юрий Зотов © (30.05.06 03:22) [9]
> чужую, делая дескрипторы стандартного ввода-вывода наследуемыми
AFAIK, для консоли нельзя.
--
Regards, LVT.
← →
Юрий Зотов © (2006-05-30 18:20) [11]> Leonid Troyanovsky © (30.05.06 05:25) [10]
Можно, я делал. Насколько помню, там в StartupInfo есть флаг соответствующий, в параметрах CreateProcess тоже на эту тему что-то есть.
← →
Leonid Troyanovsky © (2006-05-30 19:49) [12]
> Юрий Зотов © (30.05.06 18:20) [11]
> Можно, я делал. Насколько помню, там в StartupInfo есть
> флаг соответствующий, в
Скорее всего, делал ты это обычным способом - через пайп,
который чужим процессом наследуется.
Потому, как наследованию хендлов самой консоли препятствует MS:
Console input The handle is returned by the CreateFile function when CONIN$ is specified, or by the GetStdHandle function when STD_INPUT_HANDLE is specified. Console handles can be duplicated for use only in the same process.
Console screen buffer The handle is returned by the CreateFile function when CONOUT$ is specified, or by the GetStdHandle function when STD_OUTPUT_HANDLE is specified. Console handles can be duplicated for use only in the same process.
В [8] я имел ввиду несколько другое.
Когда чужой процесс запускается в своей консоли появляются
некоторые дополнительные возможности с ним взаимодействовать.
Т.е., чужой процесс даже может поверить, что это не подсунутый ему
пайп, а настоящая консоль (при переопределении стандартных ввд/выв).
--
Regards, LVT.
← →
vertal © (2006-05-30 22:35) [13]http://kladovka.net.ru/index.cgi?pid=board&rid=30
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c