
展开全部
程序中须要输入你想在多久之后进入休眠状态.以毫秒为单位,比如:输入1000,则在1秒之后进入休眠状态.
在休眠之前,如果你关闭了该程序,那么机器不会进入休眠状态.
编译环境:VS2003.net.....win32控制台....
#include <windows.h>
#include <iostream>
int main()
{
long time;
std::cin >> time;
Sleep(time);
//get operation system privilege
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//Open Process Token
if ( !OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken) )
{
return 0;
}
//Adjust the Privileges
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, 0);
SetSystemPowerState(false, false);
return 0;
}
在休眠之前,如果你关闭了该程序,那么机器不会进入休眠状态.
编译环境:VS2003.net.....win32控制台....
#include <windows.h>
#include <iostream>
int main()
{
long time;
std::cin >> time;
Sleep(time);
//get operation system privilege
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//Open Process Token
if ( !OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken) )
{
return 0;
}
//Adjust the Privileges
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, 0);
SetSystemPowerState(false, false);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询