程序中主要使用了InitiateSystemShutdown()这个函数。

ffffff>

CString CPage1::ShowError()

{

LPVOID lpMsgBuf;

::FormatMessage(

FORMAT_MESSAGE_ALLOCATE_BUFFER |

FORMAT_MESSAGE_FROM_SYSTEM |

FORMAT_MESSAGE_IGNORE_INSERTS,

NULL,

::GetLastError(),

MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language

(LPTSTR) &lpMsgBuf,

0,

NULL

);

CString strMsg((LPCTSTR)lpMsgBuf);

::LocalFree( lpMsgBuf );

return strMsg;

}

关机:

void CPage1::OnShutdown()

{

GetDlgItem(IDC_STATE)->SetWindowText(“正在试图关闭计算机,请稍候…”);

static HANDLE hToken;

static TOKEN_PRIVILEGES tp;

static LUID luid;

if(::OpenProcessToken(GetCurrentProcess(),

TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,

&hToken))

{

::LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);

tp.PrivilegeCount=1;

tp.Privileges[0].Luid =luid;

tp.Privileges[0].Attributes =SE_PRIVILEGE_ENABLED;

::AdjustTokenPrivileges(hToken,false,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL);

}

UpdateData(true);

CString str;

str.Format(“\\\\%s”,m_strName);

if(!::InitiateSystemShutdown(

(LPTSTR)(LPCTSTR)str,

“\n不好意思,我要关机了!”,

m_nTime,

m_bAlert==0?true:false,

m_nType==0?false:true

))

{

GetDlgItem(IDC_STATE)->SetWindowText(this->ShowError());

}

else

GetDlgItem(IDC_STATE)->SetWindowText(“关机成功”);

}

取消关机:

void CPage1::OnAbort()

{

GetDlgItem(IDC_STATE)->SetWindowText(“正在试图取消关机操作,请稍候…”);

UpdateData(true);

CString str;

str.Format(“\\\\%s”,m_strName);

if(!::AbortSystemShutdown((LPTSTR)(LPCTSTR)str))

{

GetDlgItem(IDC_STATE)->SetWindowText(this->ShowError());

}

else

GetDlgItem(IDC_STATE)->SetWindowText(“取消成功”);

}

休眠:

void CPage1::OnXiu()

{

if(MessageBox(“确实要休眠吗?”,”关机程序”,MB_YESNO|MB_DEFBUTTON2|MB_ICONQUESTION)==IDYES)

{

static HANDLE hToken;

static TOKEN_PRIVILEGES tp;

static LUID luid;

if(::OpenProcessToken(GetCurrentProcess(),

TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,

&hToken))

{

::LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);

tp.PrivilegeCount=1;

tp.Privileges[0].Luid =luid;

tp.Privileges[0].Attributes =SE_PRIVILEGE_ENABLED;

::AdjustTokenPrivileges(hToken,false,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL);

}

::SetSystemPowerState(false,true);

}

}

C语言自动待机程序,关机 、待机和休眠编程相关推荐

  1. 宏程序是c语言吗,宏程序是什么?如何编程和应用?

    原标题:宏程序是什么?如何编程和应用? 1. 什么场合会用到宏程序编程? 其实说起来宏就是用公式来加工零件,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要 ...

  2. c语言自动取款机程序,c语言写的取款机的模拟程序

    #include #include #define TYPE_NUM  7 int Moneyvalue [TYPE_NUM]={100,50,20,10,5,2,1};             // ...

  3. 实现tinyc语言的扫描程序_适合编程小白的C语言设计习题,实现自动发牌程序!源码分享!...

    C语言自动发牌程序,供大家参考,具体内容如下: 一副扑克有52张牌,打桥牌时应将牌分给4个人.请设计一个程序完成自动发牌的工作.要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方 ...

  4. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  5. Linux 休眠,挂起(待机),关机等几个命令的区别及如何实现;如何启用Ubuntu的休眠模式...

    这里对linux 的几个命令整理下,有:休眠,挂起,待机,关机等几个命令的区别及如何实现. 休眠是一种更加省电的模式,它将内存中的数据保存于硬盘中,所有设备都停止工作.当再次使用时需按开关机键,机器将 ...

  6. 【转】 asp.net从视频文件中抓取一桢并生成图像文件的方法 实现多语言本地化应用程序 自动返回上次请求页面...

    asp.net从视频文件中抓取一桢并生成图像文件的方法 http://www.bianceng.cn/webkf/aspx/201012/21428.htm WebUIValidation.js ht ...

  7. 设置计算机关机静音,Shortcuts 捷径控制 Windows 电脑:静音开关、音量调节、待机、关机...

    在 iPhone 上通过 Shortcuts 捷径控制 Windows 电脑:静音开关.音量调节.待机.关机 演示视频 : 教程: 一.使用方法: 1.Windows 上安装一个 SSH 服务器软件并 ...

  8. windows制作定时关机脚本_自动关机、自动打开程序… 让Windows自动执行任何操作...

    文章转载于网络,侵删 Windows 中有一个非常棒的功能,叫做"任务计划程序",但是因为它的界面看起来有点复杂,导致很少有人使用它. 其实对于任何人而言,"任务计划程序 ...

  9. c语言设置程序自动执行,c语言如何设置程序进程执行优先权

    c语言如何设置程序进程执行优先权 使用setpriority()函数设置程序进程执行优先权: 头文件: #include#include 定义函数: int setpriority(int which ...

  10. linux下用脚本语言开发自动重启程序

    由于最近要负责一个项目的维护工作,这个服务器总是出现段错误,由于时间比较紧张,我就写了一个简单的重启脚本,先让服务器不至于总是dump掉. 废话不多说,先上代码: #!/bin/sh CheckPro ...

最新文章

  1. python语言自学-【经验分享】自学Python的学习顺序!附学习资料
  2. 算法题 身高差_10个大数据处理常见算法题
  3. zbb20171013 mysql服务重启 重启服务 重启mysql服务
  4. mysql 联合索引 性能_mysql:联合索引及优化
  5. HTML5 API详解(8):worker多线程教你如何避免页面卡死
  6. 案例:演示exception对象的使用
  7. 怎样用java生成GUID与UUID
  8. 马云点名的工程师,除了几百封求爱信还有13项区块链专利
  9. 软件任我行 10步菜鸟快易通上手教程
  10. 史上最牛最全android开发知识汇总
  11. JavaScript分解质因数
  12. 禅道数据库管理登录失败,使用/opt/zbox/auth/adduser.sh命令新开用户解决
  13. python绘制饼图
  14. 一个汉字转拼音的小工具
  15. Android RrecyclerView条目跳转到指定位置
  16. 【图】深度优先遍历 广度优先遍历
  17. Winmail 邮件服务器的「架设与使用」
  18. C# winFrom中让MessageBox.Show显示到最顶层
  19. 【读书笔记】c和指针
  20. 计算机组成与设计硬件/软件接口 (MIPS版)

热门文章

  1. 拔火罐适应症及主要穴位
  2. 2017年第1季度IT互联网市场报告
  3. 6-1 顺序表的查找操作
  4. 变成一个厉害的人,最核心的一点:相信复利效应
  5. iSuppli统计发布了中国山寨手机市场销售量[转]
  6. 流媒体播放器EasyPlayer.js播放H.265视频,无法截取快照是什么原因?
  7. 论提高计算机网络可靠性方法措施,提高计算机网络可靠性的相关措施论文
  8. C++学习笔记:类的多重继承派生(eg:person、account、admin和master类)
  9. 注册表修改-Smartphone
  10. 前端工程化-webpack/cli工具