C++ QTProcess finished()信号在未关闭外部应用程序的情况下触发

C++ QTProcess finished()信号在未关闭外部应用程序的情况下触发,c++,qt,C++,Qt,我试图在一定时间内从qt打开一个外部游戏。关闭应用程序或时间结束后,我的GUI上会显示一条消息 但是,当我运行外部游戏时,最小化游戏窗口(全屏)以检查剩余时间,然后再次进入游戏,finished()信号会被触发,就像我关闭了游戏一样 有谁能告诉我,当外部.exe被最小化时,如何阻止该信号触发 这是我的密码 QProcess *myProcess = new QProcess(this); connect(myProcess, SIGNAL(finished(int, QProcess:

我试图在一定时间内从qt打开一个外部游戏。关闭应用程序或时间结束后,我的GUI上会显示一条消息

但是,当我运行外部游戏时,最小化游戏窗口(全屏)以检查剩余时间,然后再次进入游戏,finished()信号会被触发,就像我关闭了游戏一样

有谁能告诉我,当外部.exe被最小化时,如何阻止该信号触发

这是我的密码

  QProcess *myProcess = new QProcess(this);
   connect(myProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(gameClosed(int, QProcess::ExitStatus)));



  myProcess->setWorkingDirectory("C://Program Files (x86)//Sins of a Solar Empire Rebellion");
  myProcess->start(C://Program Files (x86)//Sins of a Solar Empire Rebellion//Sins of a Solar Empire Rebellion.exe,QStringList() << "",QIODevice::ReadWrite);
QProcess*myProcess=新的QProcess(此);
连接(myProcess,SIGNAL(finished(int,QProcess::ExitStatus)),这个,插槽(gameClosed(int,QProcess::ExitStatus));
myProcess->setWorkingDirectory(“C://程序文件(x86)//太阳帝国起义的罪恶”);

myProcess->start(C://程序文件(x86)//太阳帝国起义的罪恶//太阳帝国起义的罪恶.exe,QStringList()这真的很奇怪。你确定游戏没有重新启动自己或类似的东西吗?它的PID会改变吗?非常确定游戏不会重新启动,因为我回到了最小化之前的位置。但是我不知道如何检查或PID是什么。你可以检查检索进程ID的主题。然后在之前检查游戏的PID在最小化它之后。我不知道那个游戏,但它可能是你实际上并没有运行这个游戏,而是某种实际运行这个游戏的发射器,如果是这样的话,我有一些想法要建议。谢谢你的答案。鲍德宗:我检查了PID,但它们一点也没有改变。马可:这个游戏特别没有一个lau但我可能会遇到这样的游戏,所以我真的很想看看你的想法。