Корректное выполнение системного вызова QProcess
В таком виде системные вызовы Windows происходят корректно:
QProcess proc;
proc.start("taskkill", QStringList() << "/im" << clsprocs[i].c_str() << "/t" << "/f");
Однако вызовы с пайпом или перенаправлением потоков (| или >) никак не хотят работать. Пробовал и так, и сяк: proc.start("tasklist > data.tmp"), proc.start("tasklist", QStringList() << ">" << "data.tmp") и proc.start("tasklist", QStringList() << "> data.tmp").
Как всё-таки заставить QProcess отработать корректный системный вызов?
Ответы (1 шт):
По подсказке @user7860670 проблема решилась.
Было так: proc.start("tasklist", QStringList() << ">" << "data.tmp");
Сделал так: proc.start("cmd.exe", QStringList() << "/c" << "tasklist" << ">" << "data.tmp");
То есть по факту, запустил интерпретатор и передал ему нужную мне команду (cmd.exe /c ...).