C语言关机

定时开关机

 

头文件windows.h

 

BOOL ExitWindowsEx(

    UINT uFlags,

    DWORD dwReason

};

 

uFlags的值:

EWX_LOGOFF,0,注销

EWX_SHUTDOWN,1,关机

EWX——REBOOT,2,重启

EWX_POWEROFF,8,断开电源

EWX_FORCE,4,强制终止所有程序

EWX_FORCEIFHUNG,16,强制终止未响应的程序

 

后面的dwReason一般不指定

返回值为0时表示失败,非0时就表示已经开始执行关机操作

 

要指定时间关机 只需一个SetTimer函数即可

函数原型为

UINT_PTR WINAPI SetTimer(HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);

其中,hwnd为窗口句柄,nIDEvent为定时器ID,uElapse微秒值,表示每隔多少微秒调用函数,lpTimerFunc回调函数

lpTimerFunc回调函数原型:

void CALLBACK lpTimerFunc(HWND hwnd, UIINT message, UINT iTimerID, DWORD dwTimer);

 

示例程序:

void CALLBACK MyTimerProc(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTimer)
{
 SYSTEMTIME stLocal;
 GetLocalTime(&stLocal);
 TCHAR CurrTime[20];
 wsprintf(CurrTime, "%02d : %02d : %02d", stLocal.wHour, stLocal.wMinute, stLocal.wSecond);
 SetDlgItemText(hwnd, IDC_EDITTIME, CurrTime);
 if (stLocal.wHour == 17 && stLocal.wMinute == 53)
  ExitWindowsEx(EWX_LOGOFF, 0);
}

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
 SetTimer(hwnd, 0, 1000, MyTimerProc);
    return TRUE;
}

程序将在17:53时注销系统,并有一个名为IDC_EDITTIME的控件每隔一秒显示系统时间

 

关闭显示器API

SendMessage(hwnd, WM_SYSCOMMAND, SC_MONITOROWER, 2);

 

WM_SYSCOMMAND:窗口消息,系统指令

SC_MONITORPOWER:系统指令,显示电源

最后一个参数

-1:打开显示器

1:低电状态

2:关闭显示器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值