使用CreateNoWindow进行QProcess

时间:2017-01-11 00:39:32

标签: c++ qt winapi qt5.7

在C#中,有一个属性可以让应用程序在不显示应用程序窗口的情况下运行第三方应用程序。

有没有办法在不使用Win32 CreateProcess函数的情况下在QT中显示控制台窗口的情况下运行控制台应用程序?

1 个答案:

答案 0 :(得分:0)

QProcess.start()将运行控制台应用程序而不显示其窗口,但您可能还希望对其进行一些控制。请看这个例子:

QProcess p;
p.setProcessChannelMode(QProcess::MergedChannels);
p.setStandardOutputFile("out.txt");
p.start("cmd.exe", QStringList()<<"/C"<<"ping"<<"127.0.0.1");
p.waitForStarted();
p.waitForFinished();

您可以使用start方法中的第二个参数(在QStringList内)将命令和参数传递给控制台。也可以使用setStandardOutputFile方法将输出重定向到某个文件。

如果您需要显示该窗口,请使用p.startDetached()