QT QProcess逐行调用cmd指令

1.初始化 QProcess绑定输出函数

  1.      clipProcess=new QProcess(this);
  2.      clipProcess->setProcessChannelMode(QProcess::MergedChannels);
  3.      connect(clipProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(read_slot()));
  4.      connect(clipProcess,SIGNAL(readyReadStandardError()),this,SLOT(read_error()));
  5.      clipProcess->start("cmd.exe");
  6.      if (!clipProcess->waitForStarted())
  7.            qDebug() << "Make failed:" << clipProcess->errorString();
  8.        else
  9.        {
  10.           qDebug() << "clipProcess: " << clipProcess->readAll();
  11.        }

 2.实现信息输出槽函数,

  1. void Form::read_slot()
  2. {
  3.     while(clipProcess->canReadLine())
  4.     {
  5.         char output[1024];
  6.         int ret = clipProcess->readLine(output,1023);
  7.         qDebug() << ret;
  8.         qDebug() << output;
  9.  
  10.         QString tmpstr;
  11.         tmpstr=output; 
  12.         qDebug() << tmpstr;
  13.     }
  14.     qDebug() << "read slot";
  15. }

 3.逐行调用 (切记末尾加"\r\n",还有在lineEdit编辑输入例如"dir\r\n"会被识别为"dir\\r\\n"导致无法通过)

  1.     clipProcess->write("cd c:/test/\r\n");
  2.     clipProcess->waitForBytesWritten(1000);
  3.     clipProcess->write("dir\r\n");
  4.     clipProcess->waitForBytesWritten(1000);
  
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值