Как запустить внешнюю программу полностью независимо от основного приложения?

Классический вариант запуска:

system("cmd.exe");

Аналогично с WinExec и QProcess
НО! Если закрыть основную программу, запущенная внешняя программа тоже закрывается.
Отсюда, собственно, вопрос - как запустить программу независимой от основного приложения?


Ответы (1 шт):

Автор решения: Bearded Beaver

Я проверял в 5.15.2 и если запустить оконное приложение через startDetached, оно не закрывается после закрытия запускающего приложения. С командной строкой не получилось, потому что судя по всему начиная с 5.8 консольное окно в таком случае скрывается.

Получилось добиться нужного вам поведения с помощью вот таких костылей:

QProcess process;
process.setProgram("cmd.exe");
process.setArguments(QStringList() << "/C" <<  "start" << "cmd.exe");
process.startDetached();

Списывал отсюда отсюда

→ Ссылка