NT/XP下使计算机休眠(Hibernate)的代码
来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:09:59
该程序可以实现任何时候按下 Win + H 即可休眠计算机.
值得指出的是,这里说的“休眠(Hibernate)“是指彻底关闭系统电源也没事的那种, 而不是“待机(suspend)“,用户经常混淆这两个概念,但程序员不该混淆.
代码如下:
BOOL CMainFrame::HibernateWorkstation()
{
OSVERSIONINFO osv;
osv.dwOSVersionInfoSize = sizeof OSVERSIONINFO;
GetVersionEx(&osv);
if(VER_PLATFORM_WIN32_NT == osv.dwPlatformId)
{
// 如果运行在NT/XP平台
// 必须先取得权限
HANDLE hProcess, hToken;
TOKEN_PRIVILEGES Privileges;
LUID luid;
hProcess=GetCurrentProcess();
OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES, &hToken);
Privileges.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luid);
Privileges.Privileges[0].Luid = luid;
Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &Privileges, NULL, NULL, NULL);
}
::SetSystemPowerState(FALSE, TRUE); // 第一个参数FALSE为休眠, 第二个参数TRUE表示强制休眠
return TRUE; // 示例程序,我就直接return了,呵呵.
}
附: 对休眠的详细解释
休眠是系统将当前状态保存于硬盘中,然后退出系统,此时CPU、内存和硬盘都停止运行,电脑不再使用任何电力;一旦再次按下电源开关(笔记本也可以是打开翻盖)就可以激活系统,电脑快速从硬盘中调入待休眠前状态进入系统.
闲聊一句,休眠的特点是开机速度非常快,我的机子从按下POWER到出现登陆界面只需 6 秒 ^_^
值得指出的是,这里说的“休眠(Hibernate)“是指彻底关闭系统电源也没事的那种, 而不是“待机(suspend)“,用户经常混淆这两个概念,但程序员不该混淆.
代码如下:
BOOL CMainFrame::HibernateWorkstation()
{
OSVERSIONINFO osv;
osv.dwOSVersionInfoSize = sizeof OSVERSIONINFO;
GetVersionEx(&osv);
if(VER_PLATFORM_WIN32_NT == osv.dwPlatformId)
{
// 如果运行在NT/XP平台
// 必须先取得权限
HANDLE hProcess, hToken;
TOKEN_PRIVILEGES Privileges;
LUID luid;
hProcess=GetCurrentProcess();
OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES, &hToken);
Privileges.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luid);
Privileges.Privileges[0].Luid = luid;
Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &Privileges, NULL, NULL, NULL);
}
::SetSystemPowerState(FALSE, TRUE); // 第一个参数FALSE为休眠, 第二个参数TRUE表示强制休眠
return TRUE; // 示例程序,我就直接return了,呵呵.
}
附: 对休眠的详细解释
休眠是系统将当前状态保存于硬盘中,然后退出系统,此时CPU、内存和硬盘都停止运行,电脑不再使用任何电力;一旦再次按下电源开关(笔记本也可以是打开翻盖)就可以激活系统,电脑快速从硬盘中调入待休眠前状态进入系统.
闲聊一句,休眠的特点是开机速度非常快,我的机子从按下POWER到出现登陆界面只需 6 秒 ^_^
NT/XP下使计算机休眠(Hibernate)的代码
NT/XP下使计算机休眠(Hibernate)的代码
NT,2000,XP 的 CDROM 引导扇区代码分析
NT,2000,XP 的 CDROM 引导扇区代码分析
用网络引导CD/DVD光盘恢复远程NT/Win2k/XP计算机_51CTO.COM_领先的...
Windows NT计算机和域的管理
Windows NT/2000/xp注册表的文件组成
windows98\ 2000 \ NT \ ME \ XP \vist的基本要求配置
NT、2000、XP启动过程
基于MS Windows/NT的计算机图形元文件编辑器的研制
屏闭NT/2000/XP/2003系统Ctrl+Alt+Del的完美解决方案
局域网中Win2000/NT/XP非常方便实用的“信使”功能
NTFS格式的优势是什么? Windows专区 / Windows NT/2000/XP/...
局域网中Win2000/NT/XP非常方便实用的“信使”功能__娱乐|赚钱|学习|求职|网...
唤醒孩子休眠的潜能
计算机:信息化引领下产业结构的跃迁
如何更改运行 Windows XP SP1 和更高版本 Windows XP 的计算机上的...
Hibernate代码生成工具 设计全攻略
Win2000/XP/2003下的密码探测器
XP系统下扫雷的秘密
XP下快速打开网上邻居的方法
XP下快速打开网上邻居的方法
Win2000/XP/2003下的密码探测器
XP系统下,扫雷的秘密!!!