基本信息
源码名称:c语言定时关机 示例源码
源码大小:1.33KB
文件格式:.c
开发语言:C/C++
更新时间:2019-03-15
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#include <windows.h>
#include <stdio.h>
#define SeShutdownPrivilege 0x13
typedef int(__stdcall *PRtlAdjustPrivilege)(ULONG, BOOLEAN, BOOLEAN, PBOOLEAN);
BOOL fun;
DWORD WINAPI NewThread(LPVOID Lp)
{
DWORD Sec = (DWORD)Lp;
while (TRUE)
{
system("cls");
printf("距离自动关机还有%d秒\n", Sec--);
printf("按回车键取消自动关机\n");
Sleep(1000);
if (0==Sec)
{
if (fun)
ExitWindowsEx(EWX_POWEROFF, 0);
else
ExitWindowsEx(EWX_SHUTDOWN, 0);
break;
}
}
return 0;
}
int main()
{
DWORD Sec;
BOOLEAN enAbled = 0;
printf("请设置自动关机延时(秒):");
scanf("%d", &Sec);
getchar();
printf("请选择关机方式:1为快速关机,其他数字为安全关机:");
scanf("%d", &fun);
getchar();
if (1 == fun)
fun = TRUE;
else
fun = FALSE;
PRtlAdjustPrivilege RtlAdjustPrivilege =
(PRtlAdjustPrivilege)GetProcAddress(GetModuleHandle("ntdll"), "RtlAdjustPrivilege");
if (RtlAdjustPrivilege)
{
RtlAdjustPrivilege(SeShutdownPrivilege, TRUE, FALSE, &enAbled);
CreateThread(NULL, 0, NewThread, (LPVOID)Sec, 0, NULL);
}
getchar();
return 0;
}