我用Qt/c ++编写了一个应用程序,该应用程序目前正在检查某些状态并启动一个新进程,以防语句变为真。
当语句为真时,我可以启动新进程,但应用程序必须通过计时器定期检查语句。我想确保如果语句变为真并保持为真,我不会多次启动应用程序。
这是当前代码
QProcess *process = new QProcess();
process->startDetached(fileBrowserExecutablePath);
我知道这个过程可以使用
process->state() == QProcess::NotRunning
但是要检查这一点,我需要首先启动该过程,否则过程不知道要检查什么。我的意思是要检查哪个过程。
关于如何检查过程的任何想法?
我尝试使用我要启动的应用程序初始化该过程,但它无法构建。
像这样:
QProcess *process = new QProcess(fileBrowserExecutablePath);
谢谢
用Qt做到这一点(当然,如果你之前没有用QProcess
创建进程)。您必须使用特定于平台的 API 来检查进程是否正在运行。
但是,如果您确实启动了该过程,则可以使用 QProcess
对象来检查其状态。你这样做是这样的:
QProcess *process = new QProcess();
process->start(fileBrowserExecutablePath);
///...
p->state() == QProcess::Running
这样,您就可以使用 process
对象来检查状态。但请注意,如果您没有 process
对象,则必须使用本机 API 来检查进程是否正在运行。