在windows10下面使用QProcess配置IP信息

首先可以参考两篇文件,在windows下面使用cmd命令配置IP

和Qt Creator 应用程序带有管理员权限。

https://blog.csdn.net/xingchen_youyou/article/details/117522288

https://blog.csdn.net/xingchen_youyou/article/details/117521167

1、新建工程 应用程序  Qt Gui应用  pro文件增加 QT += core gui network

2、增加4个pushbutton,实现下面4个功能。

process1.readAllStandardOutput()会输出很多有用的信息(比如权限问题和命令语法问题),方便调试,因为直接process1.start("cmd.exe")跳不出cmd界面。使用cmd命令需要增加"/c"。其实/C 是  /Close的简写,是命令运行之后关闭窗口的意思。

//显示当前目录下的文件
void Widget::on_pushButton_clicked()
{
    QProcess process1(this);
    //process1.start("C:/Users/50338/Desktop/zeal-portable-0.6.1-windows-x64/zeal.exe"); //ok
    //process1.start("C:/Windows/System32/regedt32.exe");
    //process1.start("C:/Windows/System32/keygen.exe");//打不开
    QStringList list1;
    list1 << "/c" << "dir"; //增加这个Ok,没这个不行
    process1.start("cmd",list1);
    process1.waitForStarted();
    process1.waitForFinished();
    QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());
    qDebug() << "standard output:" << temp;
    qDebug() << "finish";
}

//运行C:/keygen.exe命令
void Widget::on_pushButton_2_clicked()
{
    QProcess process1(this);
    process1.start("C:/keygen.exe");//ok
    process1.waitForStarted();
    process1.waitForFinished();
    QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());
    qDebug() << "standard output:" << temp;
    qDebug() << "finish";
}

//配置动态IP
void Widget::on_pushButton_3_clicked()
{
    QString cmdline1 = "netsh interface ipv4 set address name=\"WLAN\" source=dhcp";
    QProcess process1(this);
    QStringList list1;
    list1 << "/c" << cmdline1; //增加这个Ok 需要增加 /c
    process1.start("cmd",list1);
    process1.waitForStarted();
    process1.waitForFinished();
    QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());
    qDebug() << "standard output:" << temp;
}

//配置静态IP和DNS
void Widget::on_pushButton_4_clicked()
{
    QString name = "WLAN";
    QString ip = "192.168.1.113";
    QString cmdline1 = "netsh interface ipv4 set address name= " + name + " source=static address=" + ip + " mask=255.255.255.0 gateway=192.168.1.201 gwmetric=1";
    //QString cmdline1 = "net localgroup administrators 50338 /add";
    QString cmdline2 = "set dnsservers name=" + name + "source=static address=192.168.1.201 register=primary";
    QStringList list2;
    list2 << "/c" << cmdline2;
    QProcess process1(this);
    QStringList list1;
    list1 << "/c" << cmdline1; //增加这个Ok
    process1.start("cmd",list1);
    process1.waitForStarted();
    process1.waitForFinished();
    QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());

    qDebug() << "standard output 1:" << temp;
    process1.start("cmd",list2);
    process1.waitForStarted();
    process1.waitForFinished();
    temp = QString::fromLocal8Bit(process1.readAllStandardOutput());
    qDebug() << "standard output 2:" << temp;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值