Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > передача данных в работающую программу


Автор: snake12 24.5.2008, 12:03
Запущена программа с консолью, на примере cmd.exe
консоль эта уже запущена и останавливать запускать/её мне её не надо.
Данные там принимаются с клавиатуры тоесть stdin

Нужно "написать" в этой консоли некий текст.
Раньше я использовал sendkeys/keybd_event(), но держать окно активным не получается.
Сказали смотреть в сторону direct input
доку я почитал но конечно ничего не понял, потому очень поможет кусочек кода.

Желательно либо чтото кросс платформенное либо версия для линуксов и виндоусов./
Примного благодарен.

Ну и само собой вопрос по теме, как получиьт идентификатор запущенной программы
для того чтобы в неё стото передавать. 

Автор: jonie 24.5.2008, 12:58
в винде делается перехватом каналов на чтение и запись. т.е. мы захватываем pipe на чтение и на запись, и организуем то что нам надо, манипулируя ими. думаю в *n?x также.
зачем эмулировать ввод, если можно подсовывать нужные данные?)

Автор: anatox91 24.5.2008, 13:00
посмотри это
http://doc.trolltech.com/4.4/qprocess.html

Цитата(snake12 @  24.5.2008,  12:03 Найти цитируемый пост)
как получиьт идентификатор запущенной программы

http://doc.trolltech.com/4.4/qprocess.html#pid

и еще в тему - http://img359.imageshack.us/img359/9906/aboutqprocessoz2.jpg
но не знаю, можно ли так сделать, если процесс уже запущен...

Автор: snake12 24.5.2008, 14:17
jonie, 
Ну вообщем я так и пробовал, но только открыть pipe у меня не получается совсем =(
Можешь подказать как это сделать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)