散分散程序;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,闪电登陆,很不错方法,都可以去试试!

转http://www.vckbase.com/bbs/prime/viewprime.asp?id=687
[1259 byte] By [yanglilibaobao] at [2008-1-9]
# 1
先占sf
# 2
接分接程序!~
51Crack at 2007-10-18 > top of Msdn China Tech,Windows专区,一般软件使用...
# 3
JF~~~
sergey-湮灭的思维 at 2007-10-18 > top of Msdn China Tech,Windows专区,一般软件使用...