我正在开发一个创建和运行另一个 Qprocess 的应用程序。我的代码是:
QProcess myProcess = new QProcess();
connect(myProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(sendProcessCompleted(int,QProcess::ExitStatus)));
connect(myProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(sendProcessError(QProcess::ProcessError)));
myProcess->start(program, arguments);
void SensorSimulator::sendProcessCompleted(int exitError, QProcess::ExitStatus exitStatus)
{
if(exitStatus == QProcess::CrashExit)
{
QString errorMessage("SensorSimulator is unexpectedly crashed.");
emit ProcessError(errorMessage);
}
else
{
QString p_stdout = myProcess->readAllStandardOutput();
QString p_stderr = myProcess->readAllStandardError();
}
}
void SensorSimulator::sendProcessError(QProcess::ProcessError error)
{
QString p_stdout = myProcess->readAllStandardOutput();
QString p_stderr = myProcess->readAllStandardError();
QString errorMessage;
errorMessage = "SensorSimulator is unexpectedly crashed. ProcessError: " + error;
//emit ProcessError(errorMessage);
}
我在 p_stdout 中遇到了这个异常:
运行,停止按“S”或关闭窗口。发现异常:类型:System.InvalidOperationException 消息:当任一应用程序没有控制台或控制台输入已从文件重定向时,无法查看是否按下了键。试试 Console.In.Peek。
有人可以帮忙吗?
编辑:我正在运行的进程是一个 .Net 应用程序