Qt / c ++:如果此进程未运行,则启动进程

时间:2015-06-16 08:31:11

标签: c++ qt qt5

我在Qt / c ++中编写了一个应用程序,该应用程序当前正在检查某个状态并在语句变为真的情况下启动一个新进程。

当语句为真时,我能够启动新进程但应用程序必须通过计时器定期检查语句。我想确保如果语句变为真,并且保持为真,我将不会多次启动该应用程序。

这是当前代码

QProcess *process = new QProcess();
process->startDetached(fileBrowserExecutablePath);

我知道可以使用

检查过程
process->state() == QProcess::NotRunning

但为了检查这一点,我首先要开始这个过程,否则过程不知道要检查什么。我的意思是要检查哪个流程。

关于如何检查流程的任何想法?

我尝试使用我想要启动的应用程序初始化该进程,但无法构建。

类似的东西:

QProcess *process = new QProcess(fileBrowserExecutablePath);

由于

1 个答案:

答案 0 :(得分:0)

你无法使用Qt(如果你之前没有使用QProcess创建进程)。您必须使用特定于平台的API来检查进程是否正在运行。

但是如果您确实启动了该过程,那么您可以使用QProcess对象来检查其状态。 你这样做:

QProcess *process = new QProcess();
process->start(fileBrowserExecutablePath);
///...
p->state() == QProcess::Running

这样您就可以使用process对象来检查状态。但请注意,如果您没有process对象,则必须使用本机API检查进程是否正在运行。