Qt: QProcess (18.06.2025). Печать
2025 - Июнь
18.06.2025 11:50
Save & Share
Аналогия ShellExecute в Windows: функция запуска приложений из среды разработки. Была написана функция с ней, удобная в запуске процесса и получения от него результатов работы. Упоминалась в 2021 году - прошла Astra CE v.2.12.43, SE v.1.4, SE v.1.7.4.0(7) - немного изменилась, но доказала свою работоспособность.

#Скоро будет видоизменена для корректной работы с множественными параметрами: как слева (переменные среды), так и справа (параметры) от запускаемого процесса, - и прочими прелестями. Но сейчас - нужно разместить её в полезные исходники, а также отобразить исходный код в теле материала.


QStringList qslProcess_Run(const QString qsProcess, const bool bBig_Delay)
{
    QProcess *qProcess = new QProcess;
    QByteArray qbaResult;

    qProcess->start(qsProcess); //"|" и ";" не поддерживаются.
    if (!bBig_Delay) qProcess->waitForFinished(5000); else qProcess->waitForFinished(2000000);

    if (qProcess->exitCode() != 0) iMessageBox("Ошибка!", "Запрос \"" + qsProcess + "\" не отработал корректно. Код ошибки - " + QString::number(qProcess->exitCode()) + ".", 3);

    qbaResult = qProcess->readAllStandardOutput();
    qProcess->terminate();

    delete qProcess; qProcess = NULL;

    QString qsResult = qbaResult;
    return qsResult.split("\n");
}
Обновлено ( 18.06.2025 21:48 )