【发布时间】:2017-11-30 15:31:47
【问题描述】:
我正在 Qt Creator 中制作一个在 Windows 上添加新用户帐户的应用程序。应用程序要求输入用户名和密码,然后打开 cmd 并输入命令 net user username password /all。我希望能够制作一个始终等于输入命令后 cmd 返回的标签,例如“此帐户已存在”。我的代码如下。
#include <QDebug>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QProcess"
#include "QTextStream"
#include <iostream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QProcess process1;
QStringList arguments1;
arguments1 << "net user" << ui->lineEdit->text() << ui->lineEdit_2->text() << "/add";
QString path = "C:/Windows/system32/WindowsPowerShell/v1.0/powershell.exe";
process1.execute(path, arguments1);
QString output(process1.readAllStandardOutput());
ui->label_4->setText(output);
}
【问题讨论】:
-
QProcess 有成员获取输出并传递输入。
-
那么在代码中会是什么样子?我是 Qt 新手,所以我不完全了解
-
参见文档中的 QProcess::readAllStandardOutput()。 doc.qt.io/qt-5/qprocess.html#readAllStandardOutput
-
我按照你的建议编辑了我的代码,我收到错误的应用程序输出“QIODevice::read (QProcess): device not open”
标签: c++ qt powershell