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

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);
    
    评论

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常