用C++写一个开机自启动,16:30:00的时候自动关机,关机前十秒弹窗提醒的代码
时间: 2023-03-20 11:01:06 浏览: 124
C++实现关机
以下是使用C语言编写开机自启动、定时关机并在关机前弹窗提醒的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
// 设置自启动
char path[MAX_PATH];
GetModuleFileName(NULL, path, MAX_PATH);
HKEY hKey;
RegOpenKey(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hKey);
RegSetValueEx(hKey, "MyProgram", 0, REG_SZ, (BYTE*)path, strlen(path) + 1);
RegCloseKey(hKey);
// 获取当前时间
SYSTEMTIME st;
GetLocalTime(&st);
int hour = st.wHour;
int minute = st.wMinute;
int second = st.wSecond;
// 设置关机时间为16:30:00
int shutdown_hour = 16;
int shutdown_minute = 30;
int shutdown_second = 0;
// 计算关机时间与当前时间的差值
int remaining_time = (shutdown_hour - hour) * 3600 + (shutdown_minute - minute) * 60 + (shutdown_second - second);
// 等待至关机时间并弹窗提醒
Sleep(remaining_time * 1000 - 10000);
MessageBox(NULL, "计算机将在10秒后自动关机,请保存好您的工作并退出所有程序!", "提醒", MB_OK | MB_ICONEXCLAMATION);
Sleep(10000);
// 执行关机命令
system("shutdown -s -t 0");
return 0;
}
```
解释:
该程序使用Windows API实现了以下功能:
1. 将程序添加到当前用户的自启动项中,实现开机自启动。
2. 获取当前时间并计算出当天16:30:00与当前时间的差值,以便后续等待至关机时间。
3. 等待至关机时间前10秒并弹出提醒窗口。
4. 执行关机命令。
该程序需要编译后以管理员身份运行,否则可能无法成功添加自启动项和执行关机命令。
阅读全文