Форум: "WinAPI";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизКак взять текст из ДОС-окна Найти похожие ветки
← →
Anikul (2003-08-11 22:22) [0]Ребята, такая вот проблема. Есть ДОС-приложение (не моё), я его запустил своей программой, и передал ей параметры (сэмулировал клавиатуру), как мне из этого окна считать экран с определённых знакомест (пару строчек, например)... Надо выдернуть оттуда текстовые строки в определённом месте окна ДОС-программы... Хэндл окна есть...
P.S. у меня Win2k...
← →
nikkie (2003-08-12 01:01) [1]По идее это можно сделать с помощью ReadConsoleOutputCharacter. Только, судя по самплу в MSDN, первым параметром должен быть хендл stdout. Вопрос, как тебе его получить... Видимо узнать его у абстрактного консольного приложения сложно, но если ты сам запускаешь эту программу, то ты можешь назначить ей stdout. Смотри CreateProcess, поля hStdInput и т.п. в структуре STARTUPINFO и флаг STARTF_USESTDHANDLES.
← →
Evgeny V (2003-08-12 06:31) [2]СreateProcess - там StartupInfo.hStdOutput и StartupInfo.hStdInput, например CreatePipe (&hReadPipe, &hWritePipe, &SecAttr, 0) StartupInfo.hStdOutput =hWritePipe;
StartupInfo.hStdInput =hReadPipe;(код на си), если так то смотри и про Pipe
← →
nikkie (2003-08-12 11:15) [3]Все зависит от того, как осуществляется вывод в этой программе. Если просто пишется в stdout, то проще всего будет читать именно этот вывод, а не консоль. В этом случае и пригодится pipe. Если же вывод идет в ДОС-окно по координатам (а почему-то слова "текстовые строки в определённом месте окна ДОС-программы" наводят меня именно на эту мысль), то что-то мне сомнительно, что pipe хоть что-то получит... Я бы сделал в вызывающей программе AllocConsole (если у нее нет уже консоли). hStdInput и т.п. можно не заполнять - консоль пронаследуется при CreateProcess автоматом (если не предпринимать специальных действий препятствующих этому). После запуска программы читаем с помощью ReadConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ...).
← →
Anikul (2003-08-12 20:31) [4]вывод в той программе мне неизвестен, так как то "левая" программка - "секретная" (работает с секретными данными) :), просто необходимо ей обработать много данных, иммитирую клавиатуру - "ввожу" и надо вырезать данные с этого запущенного консольного приложения.
Теоретически почти работает, пользую ReadConsolOutput, но почему-то виснит... Ввод осуществляю с пом ловушек, и ввод и чтение работают по одиночке, коряво, но работают, вместе всё виснет... :(
← →
Polevi (2003-08-13 15:23) [5]попробуй
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1057316445&n=15
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c