В настоящее время я работаю над проектом с Qt5.4 и C++. В этом проекте я запускаю и останавливаю процессы с классом QProcess.QProcess завершает дерево процессов
Я теперь расширяю проект для запуска пакетных файлов. Проблема в том, что я хочу завершить/убить процессы, запущенные с помощью командного файла, используя QProcess. Calling terminate не работает (или, может быть, я это неправильно)
Редактировать: QProcess является членом (указателем) класса ProcessHolder. startProcess() и stopProcess() обрабатывают процесс.
bool ProcessHolder::startProcess(const QString &path,
const QStringList &args) {
process_->start(path, args);
qDebug() << process_->errorString();
if(process_->waitForStarted(1000)) {
state_ = ProcessState::running;
return true;
} else {
state_ = ProcessState::fail;
return false;
}
}
bool ProcessHolder::stopProcess() {
process_->terminate();
state_ = ProcessState::notRunning;
return true;
}
Пожалуйста, помогите мне, Бен
* «Вызов завершения не работает» * - это зависит от того, как вы вызываете QProcess. Если, например, вы используете статическую функцию QProcess :: execute, то, конечно, она не будет работать. Я предлагаю вам показать пример кода того, что вы пытаетесь сделать. – TheDarkKnight