Windows 8平板电脑上的SetWaitableTimer失败并显示ERROR_NOT_SUPPORTED

时间:2013-05-31 07:00:25

标签: c++ windows winapi windows-8 power-management

我设置了一个等待计时器,以便在预定义的时间唤醒Windows:

if(SetWaitableTimer(hTimer, &liWhen, 0, NULL, NULL, TRUE))
{
    if(GetLastError() == ERROR_NOT_SUPPORTED)
    {
        //Waking is not supported
    }
}

我从原生桌面应用程序在Windows 8 Pro平板电脑上运行此代码,我得到ERROR_NOT_SUPPORTED。如果我忽略它,平板电脑在我指定时不会唤醒。如果我从Windows 7桌面运行相同的代码,它每次都会唤醒。

请注意,同一台Windows 8平板电脑上的Windows任务计划程序“唤醒计算机以运行此任务”选项也显示为灰色,但原生Windows 8 Metro日历应用程序似乎可以正常工作。将这款平板电脑从睡眠中唤醒,没有任何问题。

微软是否改变了桌面应用在Windows 8上的行为方式?或者他们是否为管理者的权力状态引入了新的API?

编辑从Microsoft发现有关桌面活动主持人的this“gem”。当Windows 8处于新的“连接待机”模式时,它显然会暂停所有不作为服务运行的桌面应用程序。它未能回答的是如何设置计时器以退出该模式。 Metro应用程序可以做到这一点,但桌面应用程序呢?

0 个答案:

没有答案