QT实现自动关机

编程入门 行业动态 更新时间:2024-10-20 00:34:12

    当今的非标设备,对于客户来说,使用越简单越方便越好,有时候客户不想通过手工去关工控机,只要PLC端关闭后,工控机也自动关闭,这在QT中很容易实现。

    首先PLC与工控机上的上位机是正常连接的,只要PLC给上位机发送一个关机指令(自己协商定义),上位机中稍作处理就能自动关机,下边直接来看QT接收socket信息的槽函数clientReadData(),这里的关机指令我们假定为"SHUTDOWN",及收到该指令后便启动关机操作,QT中提供了QProcess类来执行第三方程序,这里只给出了关键部分的代码

connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(clientReadData()));

//接收数据
void clientReadData()
{
    QString msg = tcpSocket->readAll();

    f ("SHUTDOWN" == msg)
    {
    	QProcess pro;    //通过QProcess类来执行第三方程序
    	QString cmd = QString("shutdown -s -t 0"); //shutdown -s -t 0 是window下的关机命令,

    	pro.start(cmd);    //执行命令cmd
    	pro.waitForStarted();
    	pro.waitForFinished();
    	close();    //关闭上位机
    }
}

上述代码,当服务器发来"SHUTDWON",便自动关机,知道这个功能,我们便可以使用定时器自己完成一个定时关机的软件了。

对于QProcess,如果我们想启动一个别的应用程序,如记事本程序,那么如下:

QProcess pro;
QString cmd = QString("C:\\Windows\\System32\\notepad.exe"); //也可换成别的应用程序路径,那么启动的就是对应的应用程序

pro.start(cmd);
pro.waitForStarted();
pro.waitForFinished();

 

更多推荐

QT实现自动关机

本文发布于:2023-06-11 00:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1363700.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自动关机   QT

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!