2021-03-11---tasklist /FI命令

进程名:

1.进程名如果不加 .exe后缀,与任务管理器中的不一致就会失败;

2. 对进程名大小写不敏感,大小写无所谓

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

tasklist /FI命令结论:

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

2. 对于大小写不敏感,

tasklist /fi  =  TASKLIST /FI  = tasklist /fi

imagename= IMAGENAME

示例进程名字 systime.exe =  sysTime.exe

都不会报错

3. 后面的参数必须加引号;

4. 进程名必须和任务管理器中的名字一致,那里面如果有.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

}

你可能感兴趣的:(2021-03-11---tasklist /FI命令)