资源简介
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驱动拨号上网实现步骤
相关资源
- CRF++windows版本
- 将DataSnap服务端做成Windows服务
- WindowsServer2008R2(X64)MSDN镜像简体中文
- Windows7 SP1旗舰版官方原版BT种子
- 利用USB虚拟总线驱动模拟USB摄像头的
- Windows驱动签名工具 64Signer
- vivo_fastboot_for_windows
- windows安全检查bat脚本
- MindVision_Installer_Vise_for_Windows_v3.6 注册
- 图解方式详细说明Windows Server 2016原生
- QuartusII_13.0_Windows6432.zip
- Windows 7 SP1 6.1.7601.16537 泄漏版
- Symantec Backup Exec 12.5 for Windows Servers 注
- Windows命令行压缩解压缩工具
- Pinball - 非常经典windows自带的三维弹球
- ExtPart Windows Server 2003 磁盘扩容工具
- WindowsServer2012安装.net3.5.docx
- WindowsFormsApplication1.sln
- WPE PRO IND
- FX CONTRASE?AS
- PLC password unlock Mitsubishi
- MathType6.9简体中文注册版
- VS2008试用版升级正式版工具 CrackVS20
- windows10下spark2.3.0本地开发环境搭建
- win server 2019+激活工具.zip
- metricbeat-5.6.8-windows-x86_64.zip
- KB2999226-x64.rar
- zeromq 4.0 适合windowsXP使用的libzmq.dll
- Windows登陆密码查看工具
- windows VS2010编译最新pthreads-w32-2-9-1静态
评论
共有 条评论