首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QProcess异常QT

QProcess异常QT
EN

Stack Overflow用户
提问于 2013-08-15 11:23:05
回答 1查看 1.1K关注 0票数 0

我正在开发一个创建并运行另一个Qprocess的应用程序。我的代码是:

代码语言:javascript
复制
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”或关闭窗口。异常发现: Type: System.InvalidOperationException消息:当应用程序没有控制台或控制台输入已从文件重定向时,无法查看是否按下了键。试试Console.In.Peek。

有人能帮忙吗?

编辑:我正在运行的进程是一个.Net应用程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-18 13:22:37

这个问题有点具体,但是这个解决方案可能会帮助那些拥有相同错误信息的人理解它是什么。

我运行的过程使用了Console.KeyAvailable属性,根据MSDN,当进程的输入是重定向输入时,该属性会抛出异常:

InvalidOperationException :标准输入被重定向到一个文件,而不是键盘。

当我把它改为Console.In.Peek时,一切都很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18251681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档