Windowsが、スリープする設定かどうかのチェック
日本語だとあまりいい情報がなかったのでメモ
常時起動していなければならないアプリ作成中だけど、スリープや休止状態になってしまうと動作しない。
下記のやり方でスリープや休止状態の設定を参照可能。
Windows2000,XP,Vista,7で使用可能
(VisualStudio2008 C++)
・PowrProf.libをリンクに追加すること
/** *Windowsの設定が、スリープしてしまうかどうかのチェックコード*/ #include <powrprof.h> //main省略 bool SleepChecker(){ GLOBAL_POWER_POLICY gPp; POWER_POLICY pPp; GetCurrentPowerPolicies (&gPp,&pPp); if(pPp.user.IdleTimeoutAc != 0 || pPp.mach.DozeS4TimeoutAc != 0){ return false; } return true; }
pPp.user.IdleTimeoutAcとpPp.mach.DozeS4TimeoutAcは、
これだけ経過(秒単位)するとSleepもしくは休止状態になるという値が入っていて、0だとスリープもしくは休止状態しないという
ことになる。
ココら周辺のAPIで設定変更もできるけど、ユーザの同意なく勝手に変更していいのかどうか迷ったので、手動設定を促すほうが無難かなと思う。