次のように、事前定義された時間に 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 カレンダー アプリは動作しているようで、問題なくこのタブレットをスリープ状態から復帰させることに注意してください。
Microsoft は、Windows 8 でのデスクトップ アプリの動作に何か変更を加えましたか? それとも、マネージャーの電源状態に新しい API を導入したのでしょうか?
編集デスクトップアクティビティモデレーターに関するMicrosoftからのこの「宝石」を見つけました。Windows 8 が新しい「コネクト スタンバイ」モードにある間、サービスとして実行されないすべてのデスクトップ アプリを明らかに中断します。答えられないのは、そのモードから抜け出すためのタイマーの設定方法です。Metro アプリはそれを実行できますが、デスクトップ アプリはどうでしょうか?