Название: QProcess не работает write Отправлено: updaite от Август 13, 2014, 11:00 Здравствуйте, есть код перехвата консоли, с выводом в textEdit.
Код: void MainWindow::on_pushButton_clicked() Код: void MainWindow::on_pushButton_2_clicked() Код: proc->write("map de_dust\n\r"); Код: proc->write("map de_dust\n\r"); Qt только начал осваивать. Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 11:43 В QProcess параметры передаются через QStringList. У тебя просто не происходит запуска.
Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 12:48 Если вызываю так то, перехваченные данные свидетельствуют о том что приложение запустилось успешно.
Код: proc->start("hlds.exe -game cstrike +port 27015 +map de_dust2 -console"); //запускаем процесс Если вызываю так то, перехваченные данные свидетельствуют что приложение запустилось с ошибкой. Код: QStringList arg; Даже если приложение запущено с ошибкой оно всё равно должно принимать команды, Ввод по прежнему не работает. Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 13:24 Список строк же.
Код
Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 13:53 Список строк же. Так запускалось без ошибок, но на команды по прежнему не реагирует, может быть поток ввода заблокирован? А то как то странно, приложение запустило консоль перехватывает вывод из него, а сама консоль просто открыта и пустая.Код
Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 13:59 1. Попробуй в каждый слот добавить вывод в qDebug и посмотри, что выведет на консоль - вообще попадает ли в эти слоты.
2. Попробуй bool QProcess::waitForStarted(int msecs = 30000) Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 14:03 1. Попробуй в каждый слот добавить вывод в qDebug и посмотри, что выведет на консоль - вообще попадает ли в эти слоты. 2. Попробуй bool QProcess::waitForStarted(int msecs = 30000) Боюсь не получиться так сделать, потому что по каким то причинам hlds запускается только когда вызывается из своей директории, я скомпилированный файл каждый раз копирую в директорию к hlds и от туда запускаю. Так же побывал вот так. Код: QProcess cmd; Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 14:13 1. cmd.start("c:/path/to/hlds.exe", arg);
2. cmd.waitForStarted возвращает bool, нахрена его с NULL сравнивать? Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 14:23 1. cmd.start("c:/path/to/hlds.exe", arg); 1) А вот и не запускается он так cmd.start("c:/path/to/hlds.exe", arg); "говорит отсутствует содержимое, которое должно быть рядом с ним (файлы папки)", запуск только из корня или через .bat файл.2. cmd.waitForStarted возвращает bool, нахрена его с NULL сравнивать? 2) Код: if (!cmd.waitForStarted()) Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 14:27 И куда оно это говорит?
Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 14:31 И куда оно это говорит? При запуске дает ошибку старта в textEdit и сразу завершается.Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 14:32 И куда оно это говорит? При запуске дает ошибку старта в textEdit и сразу завершается.Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 14:36 Попробуй QProcess::setWorkingDirectory
Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 14:48 Попробуй QProcess::setWorkingDirectory Как использовать в моем случае "c:\123\hlds.exe"?Не прокатило. Код: cmd.setWorkingDirectory("c:/123/"); Команда не выводит результат, а она попросту не доходит до hlds потому что не происходит действие по заданной команде. Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 14:48 Минимальный компилябельный пример сюда приложи.
Название: Re: QProcess не работает write Отправлено: updaite от Август 13, 2014, 14:56 Минимальный компилябельный пример сюда приложи. Приложил проект от Qt Creator, hlds.exe для теста перекрепить не могу, весит всё дело 200 метров, имеется в любом клиенте игры counter strike 1.6Название: Re: QProcess не работает write Отправлено: Пантер от Август 13, 2014, 14:58 CONFIG += console добавь в pro файл, тогда будет консольку запускать.
Название: Re: QProcess не работает write Отправлено: updaite от Август 23, 2014, 17:00 CONFIG += console добавь в pro файл, тогда будет консольку запускать. Прописал, проблема осталась, и она актуальна, подскажите ещё что нибудь а то я уже измучился. |