| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Хитрое консольное приложение |
| Автор: Vovkin 8.9.2007, 00:18 |
| Есть консольная программка. При запуске ждет ввода строки с клавиатуры и при нажатии ввод выполняет какие-то действия и закрывается. Решил поуправлять ею дистанционно через pipe. Это хорошо описано в инете. Так вот. При таком способе (через pipe) программа не выводит запрос и никак не реагирует на запись строки в стандартный pipe. С другими программами (в том числе cmd.exe) моя управлялка отлично работает, а с этой нет. Стоит перенаправить ввод и он пропадает вовсе. В чём может быть причина. Исходником этой консольной программы нет. Она кем-то когда то писалась. Может кто сталкивался с такими консольками? Может она как то хитро написана. И самое интересное, что команды вывода и ввода из файла работают. Т.е. если я перенаправляю ввод-вывод, то не работает. А если прямо при вызове делаю > file.txt или < file.txt, то в файлах отражаются результаты и данные из файла тоже берутся и подставляются как при вводе. |
| Автор: Tectoder 8.9.2007, 09:42 |
| На самом деле и консоль, и файл, и пайп отличаются друг от друга. Если твой программа(консольная) этого не учитывает, то у нее будут трабблы. Попробуй писать в пайп всю информацию перед передачей, авось поможет |
| Автор: Vovkin 8.9.2007, 23:28 |
| А как например из моей программы запустить консольную (DOS) программу и там сымитировать нажатия клавишь клавиатуры? Без перенаправления ввода-вывода. |
| Автор: Tectoder 8.9.2007, 23:54 |
| эмм, кажеться никак |
| Автор: Vovkin 9.9.2007, 15:10 |
| Программка оказалась очень хитрая. Она даже не реагирует на SendMessage в своё консольное окно. Если какой-нить cmd.exe запустить, то всё работает. Что-то мне говорит, что это какая-то чисто досовская программа, которая вообще на винду чихает. |
| Автор: Tectoder 9.9.2007, 16:33 |
| Консольные окна не реагируют на SendMessage. Потому что лежат в другой станции |
| Автор: W4FhLF 9.9.2007, 17:02 |
| При запуске программы в процессах появляется ntvdm.exe? |
| Автор: Vovkin 9.9.2007, 17:20 | ||
Даю Я как раз хотел написать, что выяснил, что прога запускается под ntvdm. Есть какие-нить варианты борьбы с этой прогой? |
| Автор: W4FhLF 9.9.2007, 17:51 |
| Стандартных способов нет. Из прочего, реверсить виртуальную машину, смотреть как она выводит на консоль и делать перехват этого функционала в процессе ntvdm.exe. |
| Автор: Vovkin 9.9.2007, 22:34 | ||
А может есть возможность перенаправить ввод вывод ntvdm? |