|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.05.2014, 02:16 | #1 |
Форумчанин
Регистрация: 24.02.2007
Сообщений: 104
|
StdIn в чужое консольное окно
Доброго времени суток!
Есть консольное приложение (запущено отдельно), есть Handle его процесса, есть Handle его окна. Нужно отправить окну программы всего то "exit<Enter>" Я могу просто придушить его процесс, или послать ему PostMessage(MyWnd,WM_QUIT,0,0); - это закрывает консоль, но работа приложения просто обрывается, а хотелось бы что бы завершалась корректно... Пробовал так: Код:
Код:
пишут что PostMessage только для объектных окон, а консольным до того, что оттуда приходит, до лампочки... Нашел, что нужно исходя из Handle процесса поймать StdIn нужной консоли, но не нашел нормального примера как это сделать. Восновном находится как получить строки из консоли, а не как их туда отправить. Подскажите примерчик или ссылочку....
Разберемся.......
|
11.05.2014, 10:13 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Передайте фокус консольному окну и воспользуйтесь SendInput()
А что мешает запускать процесс самому и контролировать кто и что туда пишет и в нужный момент посылать что надо? |
11.05.2014, 13:10 | #3 |
Форумчанин
Регистрация: 24.02.2007
Сообщений: 104
|
Не очень удобный вариант: нужно обязательно окно развернуть, дать ему фокус.... А если поверх всего открыто DirectX окно? его прийдется свернуть для отправки в нужную консоль команды? Или как вариант рабочий стол заблокирован (Win+L)?
http://forum.hackzona.ru/forum-f16/o...hi-t18139.html Тут есть пример как из консоли результаты тянуть, там юзают StdOut окна для этого, и как я понимаю там не важно свернуто оно, спрятано, или в фокусе... Мне как я понимаю для достижения правильного результата нужен StdIn окна, но как его получить, а главное туда что то отправить, я так и не нашел нормального примера. А к стати, что мне даст если я его сам запущу?
Разберемся.......
|
11.05.2014, 13:19 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Ну тогда попробуйте AttachConsole(), WriteConsoleInput() и stdin вместо stdout.
Если будете запускать сами, вы будете создавать для процесса его stdin/stdout/stderr и сможете подсовывать все что надо и когда надо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чужое окно вылетает | evgenrpo | Win Api | 0 | 16.03.2012 00:40 |
[?] Послать клавишу в чужое окно, не выводя окно на передний план. | Moriarty | Win Api | 4 | 21.02.2011 05:11 |
Control в чужое окно | Qwe1 | Win Api | 5 | 25.12.2010 00:27 |
Скрыть чужое окно | ЧИЖ | Win Api | 8 | 12.06.2008 00:55 |