C++ Windows 8平板电脑上的SetWaitableTimer失败,错误\u不受支持
我设置了一个可等待计时器,以便在预定义的时间唤醒窗口,如下所示:C++ Windows 8平板电脑上的SetWaitableTimer失败,错误\u不受支持,c++,windows,winapi,windows-8,power-management,C++,Windows,Winapi,Windows 8,Power Management,我设置了一个可等待计时器,以便在预定义的时间唤醒窗口,如下所示: if(SetWaitableTimer(hTimer, &liWhen, 0, NULL, NULL, TRUE)) { if(GetLastError() == ERROR_NOT_SUPPORTED) { //Waking is not supported } } 我从本机桌面应用程序在Windows 8 Pro平板电脑上运行此代码,但出现错误\u不受支持。如果我忽略它,平板电
if(SetWaitableTimer(hTimer, &liWhen, 0, NULL, NULL, TRUE))
{
if(GetLastError() == ERROR_NOT_SUPPORTED)
{
//Waking is not supported
}
}
我从本机桌面应用程序在Windows 8 Pro平板电脑上运行此代码,但出现错误\u不受支持。如果我忽略它,平板电脑就不会在我指定的时间唤醒。如果我在Windows7桌面上运行相同的代码,它每次都会被唤醒
请注意,同一台Windows 8平板电脑上的Windows任务计划程序的“唤醒计算机以运行此任务”选项也会变灰,但本机Windows 8 Metro日历应用程序似乎可以正常工作&将此平板电脑从睡眠中唤醒,而不会出现任何问题
微软是否改变了Windows 8上桌面应用程序的行为方式?或者他们是否向manager电源状态引入了新的API
编辑从Microsoft找到关于桌面活动主持人的“gem”。当Windows 8处于新的“连接待机”模式时,它显然会挂起所有不作为服务运行的桌面应用程序。它没有回答的是如何设置计时器以退出该模式。Metro应用程序可以做到这一点,但桌面应用程序呢?您在控制面板中启用了它吗?转到
所有控制面板项目\电源选项\编辑计划设置
,然后单击更改高级电源设置
,并在树中展开睡眠
,以启用允许唤醒计时器
@RogerRowland:尝试过了。高级电源选项中没有计时器。此外,在cmd中执行powercfg/waketimers
将返回0个计时器。同时,平板电脑可以从Metro日历应用程序中唤醒。