打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
NT/XP下使计算机休眠(Hibernate)的代码
该程序可以实现任何时候按下 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 秒 ^_^
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
各种音视频格式转换技巧
一段支持Windows7的代码
注入进程远程线程注入与hook注入
Window关机函数ExitWindowsEx详解 - dwdm - 博客园
关机有关的函数
提升进程权限
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服