先获取自己的进程名,根据进程名杀进程。
void MainWindow::on_btn_kill_clicked()
{
QString exeFilePath = QCoreApplication::applicationFilePath(); //获取exe的完全路径
QString exeFileName = QFileInfo(exeFilePath).fileName(); //获取exe的名称
QProcess p;
QString c = "taskkill /im " + exeFileName + " /f"; //exeFileName为要杀死的进程名
p.execute(c);
p.close();
}
因为可能是多个进程同时运行,但只想杀掉自己这一个进程的情况下,可以根据pid来杀进程
先获取自己的进程id,根据进程id杀进程。
void MainWindow::on_btn_kill_clicked()
{
#ifdef Q_WS_WIN
DWORD pid = GetProcessId();
#else
int pid = getpid(); //获取进程id
#endif
QProcess p;
QString cmd = QString("taskkill /F /PID %1 /T").arg(pid);
p.execute(cmd);
p.close();
}