Название: [РЕШЕНО] QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 24, 2016, 17:03 Привет, друзья!
Есть 5 программ под dos. Все они в конце своей работы выдают Press any key to continue.... Я их цепляю через QProcess и передаю в поток '\n'. 4 из них отрабатывают как и ожидается, а вот одна как-то по хитрому написана... Исходников этих программ нет. Есть идеи, как нажать этот any key? Название: Re: QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 24, 2016, 17:34 Ещё информация.
Открыл хекс редактором все эти файлы. Там вручную выводится echo on press any key .... Название: Re: QProcess Press any key to continue.... Отправлено: Bepec от Июнь 24, 2016, 19:23 "\r\n" передавать пробовали? :D
Ну или как вариант он ожидает символ, а не просто нажатие :) Название: Re: QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 25, 2016, 10:44 Пробовал символы передавать и сейчас попробовал \r\n. Не помоает.
Название: Re: QProcess Press any key to continue.... Отправлено: Bepec от Июнь 25, 2016, 11:54 Хз в общем, но тут мб много ещё вариантов :D Надо пробовать, смотреть.
Название: Re: QProcess Press any key to continue.... Отправлено: Igors от Июнь 25, 2016, 12:09 Написать программу под DOS которая зашлет символ в буфер клавы. Или сначала отладчиком посмотреть какое прерывание используется для ожидания ввода
Название: Re: QProcess Press any key to continue.... Отправлено: Old от Июнь 25, 2016, 12:52 Написать программу под DOS которая зашлет символ в буфер клавы. А как эту программу выполнить в том же окружении с исполняющейся DOS-программой?Название: Re: QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 25, 2016, 23:25 У меня пока одно решение - терминировать по истечению времени.... Как мне может помочь знание используемого прерывания?
Название: Re: QProcess Press any key to continue.... Отправлено: Igors от Июнь 26, 2016, 04:56 У меня пока одно решение - терминировать по истечению времени.... Как мне может помочь знание используемого прерывания? Ну хотя бы будете знать почему не срабатывает посылка \n. Еще варианты- обойти вызов этой ф-ции (подправить код в отладчике) - эмулировать нажатие средствами OC из-под которого запускается приложение дос Название: Re: QProcess Press any key to continue.... Отправлено: Old от Июнь 26, 2016, 05:42 У меня пока одно решение - терминировать по истечению времени.... А сообщение "Press... " эта программа пишет в поток? Вы его в хосте получаете?Название: Re: QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 26, 2016, 21:32 Old,
Код Во всех процессах кроме проблемного отлавливает press. Хотя, как я писал выше, он, вроде как через системный echo это должен делать. В общем, ответ нет, не пишет. Название: Re: QProcess Press any key to continue.... Отправлено: Old от Июнь 26, 2016, 21:51 В общем, ответ нет, не пишет. А что она вообще делает?Результаты ее работы где-то сохраняются? Название: Re: QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 26, 2016, 22:06 Да. Даже известно количество строк записи
Название: Re: QProcess Press any key to continue.... Отправлено: Old от Июнь 26, 2016, 22:09 Да. Даже известно количество строк записи Тогда проще отслеживать, когда она все вернет и чпокать процесс.Название: Re: QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 28, 2016, 12:29 Тогда проще отслеживать, когда она все вернет и чпокать процесс. Так и сделал. Спасибо.Название: Re: [РЕШЕНО] QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 28, 2016, 16:37 Что-то kill() не работает. Соответственно деструктор пишет
Цитировать QProcess: Destroyed while process ("D:\\QtProjects\\NodularCast\\3rdparty\\adi_ret_aust\\RET_AUST.exe") is still running. Название: Re: [РЕШЕНО] QProcess Press any key to continue.... Отправлено: Old от Июнь 28, 2016, 16:46 Что-то kill() не работает. Это на винфак. :)Название: Re: [РЕШЕНО] QProcess Press any key to continue.... Отправлено: __Heaven__ от Июнь 28, 2016, 17:13 А я что-то подумал, что и хрен то с ним :) При закрытии родителя дети убиваются. Пускай там их хоть сотни плодятся.
|