【发布时间】:2020-11-12 20:55:05
【问题描述】:
是否可以在使用 Qprocess 启动后关闭外部浏览器中的窗口或选项卡?
我尝试了以下(例如):
#include <QCoreApplication>
#include "QProcess"
#include "QThread"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QProcess process;
process.start("C:/Program Files/Google/Chrome/Application/Chrome.exe", QStringList() << "google.com");
QThread::msleep(1000);
process.kill();
process.waitForFinished();
return a.exec();
}
但是进程没有关闭。
那么,这是不可能的还是有解决方法?谢谢。
【问题讨论】:
-
调用 kill() 只对正在运行的进程有意义,所以这不是问题。问题可能是您的进程实例超出范围,因此破坏了 QProcess 的实例。尝试使用
QProcess *process = new QProcess(); -
好吧,它没有用。
-
请编辑您的问题以提供可用于重现问题的minimal reproducible example。您可能还想尝试在
process.kill()调用之后立即调用process.waitForFinished()。 -
我提供了一个最小的例子,process.waitForFinished() 没有改变任何东西。
标签: qt browser kill-process qprocess