我正在启动一个QProcess来获取"adb设备“的返回值。没有错误,总是有一个空响应。我在Windows上的系统环境中有adb,命令在cmd上运行良好。
我做错了什么吗?还是有其他方法可以在QT中运行adb命令?
class ADBInfo: public QObject {
public:
void start(){
process = new QProcess( this );
process->start("adb.exe devices");
process->waitForFinished(-1);
qDebug() << "output: " << process->readAll();
qDebug() << "error: " << process->readAllStandardError();
}
private:
QProcess *process;
};
发布于 2021-05-26 15:44:22
下面是正确的方法
QString mainwindow::cmd(const QString &command)
{
qDebug () << "command = "+command;
QProcess P2;
P2.start(command);
P2.waitForFinished(-1);
P2.setReadChannel(QProcess::StandardOutput);
QTextStream reade2(&P2);
QString line2,line,Out;
while (reade2.readLineInto(&line2))
Out.append(line2 +'\n');
P2.setReadChannel(QProcess::StandardError);
QTextStream reader(&P2);
while (reader.readLineInto(&line))
Out.append(line +'\n');
P2.close();
return Out.trimmed();
}
当您需要执行命令时
QString Result = cmd("adb devices")
https://stackoverflow.com/questions/58193661
复制相似问题