QT利用QProcess实现cmd命令调用的注意事项


前言

本文搜集了在利用QT中的QProcess类进行cmd程序调用时本人遇到的问题,在此总结下为广大开发者提供参考


一、发送cmd的命令

	QStringList arguments;
    QString temp;
   
    arguments <<"/c" <<"adb root";             //将命令写入列表中(命令前面加/c的作用是执行命令完成后关闭命令窗口)
    process->start("cmd",arguments);           //这里是process的start重载,意思为加载cmd窗口,并将命令写入
    arguments.clear();                         //命令写入完成后清除列表
    process->waitForStarted();                 //等待进程开始
    process->waitForFinished();                //等待进程结束

process为自己定义的QProcess类,在发送命令时,实测提前将命令装入QStringList中,可以防止很多报错(主要是空格),并且每次发送完成后,都要进行等待,等待次命令进程结束

二、接收cmd命令的返回结果

在我们自己打开windows命令窗口时,输入cmd命令,窗口会返回所有结果,无论是错误还是其他结果,但是在使用QProcess类获取cmd结果时,窗口返回的结果是分开的,分为错误结果与输出结果,如果命令输入错误,那么只有错误结果通道会返回信息,而输出结果获取的则为空消息

获取正常输出结果:

	QString temp;
	temp = QString::fromLocal8Bit(process->readAllStandardOutput());

获取错误输出结果:

	QString temp;
	temp = QString::fromLocal8Bit(process->readAllStandardError());

三、注意事项

1、带有路径的命令

如果想在使用此"adb push C:\Users\Administrator\Desktop\app-release.apk /system/app/“命令,直接这样写是识别不出来的,在C++中需要想在字符串中适应”“需要用”\"代替

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望space

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值