记录一下
#include <QCoreApplication>
#include <QProcess>
#include <QDebug>
QVariantMap getProcessListName()
{
QProcess process;
QStringList nameList;
QVariantMap curMap;
#ifdef Q_OS_WIN
process.start("tasklist");
#else
process.start("ps -A -o comm");
#endif
process.waitForFinished();
QString result = process.readAll();
process.close();
nameList = result.split("\n");
for(QString name : nameList)
{
QStringList rowList = name.split(" ",QString::SkipEmptyParts);
if(rowList.size()>0&&rowList.at(0)=="wps.exe"){
curMap.insertMulti(rowList.at(0),rowList.at(1));
}
}
return curMap;
}
void killProcessById(int processId)
{
QProcess process;
#ifdef Q_OS_WIN
process.start("taskkill",QStringList()<<"/F"<<"/PID"<<QString::number(processId));
#else
process.start("kill",QStringList()<<"-9"<<QString::number(processId));
#endif
process.waitForFinished();
if(process.exitCode()!=0)
{
qDebug()<<__func__<<processId<<"关闭失败";
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVariantMap varmap = getProcessListName();
QList<QVariant> idList = varmap.values("wps.exe");
for(QVariant id : idList)
{
qDebug()<<__func__<<id;
killProcessById(id.toInt());
}
return a.exec();
}