【问题标题】:How to kill a process with QProcess::execute()?如何使用 QProcess::execute() 杀死进程?
【发布时间】:2021-12-31 11:30:27
【问题描述】:

我在使用 taskkill 终止进程时遇到了一些问题。

我的代码:

QStringList args;
args << "/F";
args << "/IM testApp.exe";
QProcess::execute("taskkill", args); //Should be 'taskkill /IM testApp.exe /F'

输出(从德语翻译):

ERROR: Invalid argument - "/IM testApp.exe".
Type "TASKKILL /?" to show the syntax.

【问题讨论】:

  • 你也可以QStringList args{"/F","/IM","testApp.exe"}; 然后QProcess::execute("taskkill", args);

标签: c++ qt qt5 qprocess taskkill


【解决方案1】:

"/IM testApp.exe" 生成一个参数,但应该是两个参数。你得到命令taskkill /F "/IM testApp.exe"。正确的调用是

QStringList args;
args << "/F";
args << "/IM";
args << "testApp.exe";
QProcess::execute("taskkill", args);

【讨论】: