Название: Обнаружение вопроса при запуске команды через "system" или "QProcess::execute" Отправлено: YvenTitan от Декабрь 12, 2019, 16:57 Здравствуйте.
Я запускаю программу через QProcess::execute. По сути тоже самое, как если бы запустил через терминал командной строки вручную. Бывает такое, что запускаемая программа "о чем-то спрашивает пользователя". В моем случае я запускаю 7z.exe и если в архиве в одной папке лежат 2 одинаковых файла, то программа спрашивает, что делать ли переименование файла при разархивации. Можете подсказать, можно как-то отследить в основной программе случай, когда программа запущенная в командной строке "задает вопрос"? Название: Re: Обнаружение вопроса при запуске команды через "system" или "QProcess::execute" Отправлено: sergek от Декабрь 12, 2019, 21:24 Можно повесить слот на сигнал QProcess::readyReadStandardOutput и увидите вопросы. Только лучше использовать опции самого 7zip, например, -y.
Название: Re: Обнаружение вопроса при запуске команды через "system" или "QProcess::execute" Отправлено: YvenTitan от Декабрь 13, 2019, 10:53 Спасибо за ответ, но у меня не получилось сигналом QProcess::readyReadStandardOutput отследить момент вопроса. Опция -y хорошо помогает, когда надо ответить на вопрос "Да", но мне после вопроса нужно выйти и выдать ошибку (о том, что архив неисправен).
Название: Re: Обнаружение вопроса при запуске команды через "system" или "QProcess::execute" Отправлено: ViTech от Декабрь 13, 2019, 11:04 Похоже, этот момент не так просто отследить, возможно придётся что-то платформозависимое писать.
Determine if QProcess is waiting for user input (https://stackoverflow.com/questions/53074904/determine-if-qprocess-is-waiting-for-user-input). Название: Re: Обнаружение вопроса при запуске команды через "system" или "QProcess::execute" Отправлено: sergek от Декабрь 13, 2019, 13:07 ... но мне после вопроса нужно выйти и выдать ошибку (о том, что архив неисправен). Не уверен, что вник в детали, но мне кажется, что можно в слоте стандартного вывода этот вопрос отловить и грохнуть весь процесс, который этот вопрос задает.Название: Re: Обнаружение вопроса при запуске команды через "system" или "QProcess::execute" Отправлено: qate от Декабрь 13, 2019, 18:14 у меня не получилось сигналом QProcess::readyReadStandardOutput 1. пробуй readyReadStandardError 2. пробуй весь вывод писать в stderr типа : 7z x arch.7z 1>&2 stderr не буферизуется - может помочь |