QT杀程序进程

先获取自己的进程名,根据进程名杀进程。

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();
}

版权声明:本文为weixin_41093846原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。