我设置了一个等待计时器,以便在预定义的时间唤醒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应用程序可以做到这一点,但桌面应用程序呢?