tasklist /FI命令结论

进程名:
1.进程名如果不加 .exe后缀,与任务管理器中的不一致就会失败;
2. 对进程名大小写不敏感,大小写无所谓

命令参数需用引号隔开,否则不能识别

tasklist /FI命令结论:

对于空格不敏感。无论是 tasklist/fi, tasklist /fi都可以;

对于大小写不敏感,
tasklist /fi = TASKLIST /FI = tasklist /fi
imagename= IMAGENAME
示例进程名字 systime.exe = sysTime.exe
都不会报错

后面的参数必须加引号;

进程名必须和任务管理器中的名字一致,那里面如果有.exe后缀,此处命令中必须也有后缀。
————————————————

QT代码:

bool IfProcessIsRuning(const QString &appName)
{
#ifdef Q_OS_WIN //表示如果在windows下
qDebug()<< FUNCTION;
QProcess process;
process.start(“tasklist” ,QStringList()<<"/FI"<<“imagename eq " +appName); //执行tasklist程序
//process.start(“tasklist”); //执行tasklist程序----这种方式也行,只是后面读出来的内容有点多。
process.waitForFinished(5000); //阻塞5秒等待tasklist程序执行完成,超过五秒则直接返回
QString outputStr = QString::fromLocal8Bit(process.readAllStandardOutput()); //把tasklist程序读取到的进程信息输出到字符串中
if(outputStr.contains(appName))
{
process.close(); //用完记得把process关闭了,否则如果重新调用这个函数可以会失败
//qDebug()<<” OK, have found it!";
return true;
}
else
{
process.close();
//qDebug()<<" No, can’t find it!";
return false;
}
#endif
}
————————————————

原文地址:https://www.cnblogs.com/laowang001/p/14516767.html