资源简介
1.功能简介:
这是一款运行于Windows下的控制台应用程序,它可以根据用户指定的参数不停地自
动切换电脑到睡眠或者休眠模式,并于一定时间之后自动唤醒。它可以省去在测试的过程中
需要手动不停地让电脑睡眠(休眠)并唤醒的麻烦,解放了测试人员的双手,节约了测试时
间,提高了工作效率。
2.命令格式:
..\SleepAndWakeupAssistant.exe [slpMode] [slpTimes] [wkpInterval]
参数:(1)slpMode为睡眠模式(s/S-睡眠,h/H-休眠),指需要电脑进入睡眠模式
还是休眠模式;
(2)slpTimes为睡眠唤醒次数(正整数,单位:次),指需要电脑自动睡眠
并唤醒的次数;
(3)wkpInterval为唤醒时间(正整数,单位:秒),指从开始睡眠(休眠)
到开始唤醒之间间隔的时间。
代码片段和文件信息
//文件:SleepAndWakeupAssistant.cpp
//作者:chenx
//日期:2013/06/03
#include
#include
#include
#include
using namespace std;
//获取睡眠(休眠)权限
BOOL getPrivilegeToSleep()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess()
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY &hToken))
return( FALSE );
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL SE_SHUTDOWN_NAME
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken FALSE &tkp 0
(PTOKEN_PRIVILEGES)NULL 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
return TRUE;
}
//打印帮助信息
VOID printHelpInformation()
{
cout << “--------------------------------用法------------------------------------“ << endl;
cout << “格式:..\\SleepAndWakeupAssistant.exe [slpMode] [slpTimes] [wkpInterval]“ << endl;
cout << “功能:根据指定的睡眠(休眠)唤醒时间间隔与睡眠(休眠)次数对电脑“ << endl;
cout << “ 进行自动睡眠和自动唤醒“ << endl;
cout << “参数:slpMode为睡眠模式(s/S-睡眠,h/H-休眠)“ << endl;
cout << “ slpTimes为睡眠唤醒次数(正整数,单位:次)“ << endl;
cout << “ wkpInterval为唤醒时间(正整数,单位:秒)“ << endl;
cout << “------------------------------------------------------------------------“ << endl << endl;
}
//一次睡眠(休眠)和唤醒
INT doSleepAndWakeup(string strSleepMode INT nWakeupInterval)
{
if ((strSleepMode != “s“ && strSleepMode != “h“ && strSleepMode != “S“ && strSleepMode != “H“) || nWakeupInterval < 0)
{
#ifdef _DEBUG
cout << “输入参数错误!“ << endl;
#endif
return -1;
}
//获取权限
if (!getPrivilegeToSleep())
{
#ifdef _DEBUG
cout << “获取睡眠(休眠)权限失败!“ << endl;
#endif
return -2;
}
//创建一个可等待的计时器对象
HANDLE hTimer = CreateWaitableTimer(NULL FALSE L“WakeupTimer“);
if (NULL == hTimer)
{
#ifdef _DEBUG
cout << “创建唤醒定时器对象失败!“ << endl;
#endif
return -3;
}
//设置定时器
LARGE_INTEGER lnSleepTime;
lnSleepTime.QuadPart = (nWakeupInterval + 20) * (-10000000LL);
if (!SetWaitableTimer(hTimer &lnSleepTime 0 NULL NULL TRUE))
{
#ifdef _DEBUG
cout << “设置自动唤醒失败!“ << endl;
#endif
CloseHandle(hTimer);
return -4;
}
else
{
if (ERROR_NOT_SUPPORTED == GetLastError())
{
#ifdef _DEBUG
cout << “系统不支持自动唤醒!“ << endl;
#endif
CloseHandle(hTimer);
return -5;
}
#ifdef _DEBUG
cout << “设置自动唤醒成功!“ << endl;
#endif
}
INT nRestartInterval = 20;
//睡眠倒计时
for (INT i = 0; i < nRestartInterval; ++i)
{
cout << nRestartInterval - i << “秒之后将进入睡(休)眠!(若要取消,请关闭本窗口)“ << endl;
Sleep(1000);
}
cout << endl;
//根据参数进入睡眠或休眠
if (strSleepMode == “s“ || strSleepMode == “S“)
{
if (!SetSuspendState(FALSE TRUE FALSE))
{
#ifdef _DEBUG
cout << “设置系统睡眠失败!“ << endl;
#endif
CloseHandle(hTimer);
return -6;
}
}
else
{
if (!Set
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2024 2013-06-03 20:41 睡眠唤醒助手V1.0\Readme.txt
目录 0 2014-09-18 14:17 睡眠唤醒助手V1.0\SourceFile\
文件 5233 2013-06-03 20:31 睡眠唤醒助手V1.0\SourceFile\SleepAndWakeupAssistant.cpp
目录 0 2014-09-18 14:17 睡眠唤醒助手V1.0\Ver2008Release\
文件 13824 2013-06-03 21:05 睡眠唤醒助手V1.0\Ver2008Release\SleepAndWakeupAssistant.exe
目录 0 2014-09-18 14:17 睡眠唤醒助手V1.0\
- 上一篇:席卡制作标准
- 下一篇:WinCE6.0华为3G模块MC509驱动拨号上网实现步骤
相关资源
-
Windows em
bedded Compact 2013 应用开发调 - 黑苹果硬件兼容检测和查询软件
- Uninstall_Cortana_WINCLIENT.CN.rar
- VMware65_SLP_DeLLSLIC2.1
- Windows异步套接字网络编程
- WINDOWS98启动盘镜像Win98.IMA
- 仿windows记事本
- windows7用的,非常漂亮的透明计时器
- windows下制作macOS安装U盘,绝对简单好
- keil vcom windows 7 64bit 驱动
- windows ce 系统的GPIO驱动程序
- TCP 发包工具(windows)
- 微软的可以删除系统卸不干净的软件
- windows下生成MD5值的工具(WinMD5)
- windows cygwin ns2安装步骤
- WinAPI 函数库(大全)
- 解决在Windows XP SP2下不能显示验证码的
- 加快Windows XP操作系统开机速度
- Windows 1.0 软盘镜像
- Windows下访问LINUX的利器-SSH
- ChilledWindows.exe(玩笑病毒)
- NDK-R12B windows-x86_64百度云盘
- windows3.2简体中文版,虚拟机文件
- Windows 3.0 安装软盘(3.5 720k)
- WINDOWS内核安全编程 寒江独钓 光盘源
- 寒江独钓-Windows内核安全编程(完整版
- 实现Windows与Linux两系统间自由切换
- 如何删除Linux系统后找回Windows的启动
- 飞康NSS、CDP力保Windows Server 2008数据迁
- 意天Windows助手(进程强杀/进程守护
评论
共有 条评论