必威体育Betway必威体育官网
当前位置:首页 > IT技术

QT实现自动关机

时间:2019-10-27 23:45:45来源:IT技术作者:seo实验室小编阅读:65次「手机版」
 

自动关机

当今的非标设备,对于客户来说,使用越简单越方便越好,有时候客户不想通过手工去关工控机,只要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();

文章最后发布于: 2018-08-08 15:27:56

相关阅读

分享一个自己做的截图小工具(基于Windows平台的批处理

最近项目中要有截图的工作要做,对于我等使用AS的开发人员来说,视频或者截图借用工具也是分分钟的事情,但是公司的业务同事和测试人员

Qt之多线程

#include <QtGui/QApplication> #include <qthread.h> #include <windows.h> #include "mainwindow.h" /*创建一个线程类*/ cla

strcmp函数的分析及实现

函数原型: int strcmp(const char *string1,const char *string2) 所在库文件: #include<string.h> 参数: 以null结尾的字符串

首款5G无人驾驶巴士:实现障碍绕行、自动按站停靠等功能

A5创业网(公众号:iadmin5)1月22日报道,近日重庆首款5G无人驾驶巴士正式投入测试,通过低时延5G通讯网络和人工智能等先进技术让巴士准

霍夫曼树及霍夫曼编码的C语言实现

从周五开始学习霍夫曼树,一直到今天终于完成,期间遇到了各种各样的棘手的问题,通过一遍遍在纸上分析每一步的具体状态得以解决。现在

分享到:

栏目导航

推荐阅读

热门阅读