QT里实现Windows电脑三种关机方法

QT里实现Windows电脑三种方法

  • 第一次使用
    • 第一种关机方法
    • 第二种关机方法
    • 第三种关机方法
    • Windows,关机,重启,注销,命令
    • 插入链接与图片

第一次使用

第一次写,还不知道怎么写,不太会,请原谅啊。
今天写了一个在QT里面关闭和重启windows电脑的操作,就找了一下,做出来后把注销也试了一下,还挺好的,网上找了很多,代码复制过来用不了报错,也可能是我解锁方式不对人的问题。基本都是一点点,写出来方便以后查看,也希望能帮到其他人。

这几种方法都需要加一个头文件,必须加的:

#include 

第一种关机方法

加入头文件

#include 
	QString program = "C:/WINDOWS/system32/shutdown.exe";
    QStringList arguments;
    arguments << "-s";
    QProcess *myProcess = new QProcess();
    myProcess->start(program, arguments);

第二种关机方法

这个我的用不了,找的别人的,你们可以试试,跟windows官方提供的API代码一样,函数

bool MainWindow::on_pushButton_clicked()
{
HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
    //获取进程标志
    if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
        return false;
    //获取关机特权的LUID
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,    &tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    //获取这个进程的关机特权
    AdjustTokenPrivileges(hToken, false, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
    if (GetLastError() != ERROR_SUCCESS) return false;
    // 强制关闭计算机
    if ( !ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
        return false;
    return true;
}

第三种关机方法

加头文件`:就一句话

#include 
    system("shutdown -s -t 00");

Windows,关机,重启,注销,命令

使用函数system();
关机指令。(shutdown -s -t xx
重启指令。(shutdown -r -t xx
注销指令。(shutdown -l -t xx

标准格式。(shutdown -s -t xx
t xx是关机延时时间 /秒;xx可以是00,直接关机。
可能输入00后,windows提示n分钟后关机,但关机时间实际是设定的时间。
`

这就完了,也算是学到新知识

插入链接与图片

参考链接: link.

如有侵权的还请原谅我这个小白,联系我我马上删除。

你可能感兴趣的:(QT,windows,windows,c++,qt)