Calarence 2019-03-13 09:26 采纳率: 0%
浏览 1427
已结题

Vs+Qt环境 QProcess 利用cmd启动第三方的exe,无法正常启动

1.操作如题,在主线程中调用QPRocess启动cmd,调试的时候cmd可以在进程中查看到,利用QProcess的write向Cmd输入命令,命令为启动第三方exe,运行之后第三方的exe没有在进程中查看到,说明启动失败。按照我的理解应该启动cmd之后,执行命令,调试的控制台窗口应该会变成第三方的控制台的状态。而且应该在代进程管理器中可以查看到第三方exe的。代码如下:

    QString argument = QString("-od G:/test -aet DCMTKTEST 666 -fe .dcm");// .arg(savestrpath);
    QString fullpath = QString("%1/%2").arg(QString("G:/Utilities/Debug/DCMTK/bin")).arg(QString("storescp.exe "));

    QString argv(fullpath + argument);

    QString program;
    program.append("cmd.exe");
    prog = new QProcess(this);
    prog->start(program);
    char*  ch;
    QByteArray ba = argv.toLatin1(); // must
    ch = ba.data();

    prog->write(ch);
    prog->write("\n\r");
  • 写回答

2条回答 默认 最新

  • Calarence 2019-03-13 10:32
    关注

    已经找到答案了 ,真是郁闷,每次发了帖子,自己再试一下就问题解决了,把解决源码发上来供有需要的人参考吧
    QString argument = QString("-od G:/test -aet DCMTKTEST 666 -fe .dcm");// .arg(savestrpath);
    QString fullpath = QString("%1/%2").arg(QString("G:/Utilities/Debug/DCMTK/bin")).arg(QString("storescp.exe "));

        QString program;
        QStringList argulist;
        argulist.append("-od");
        argulist.append("G:/test");
        argulist.append("-aet");
        argulist.append("DCMTKTEST");
        argulist.append("666");
        argulist.append("-fe");
        argulist.append(".dcm");
        program.append(fullpath);
        prog = new QProcess(this);
        prog->start(program,argulist);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突