スリープ中の自動復帰がうまくいかず、ちょっと悩んでいましたが、ようやくシステムバックアップの定期取得環境が設定できました。
バックアップの取得には「EaseUS Todo Backup Free」のシステムバックアップ機能を利用しました。
プランの編集画面でバックアップのスケジュールを色々指定できます。
システムは週末にいじることが多いので、システムバックアップは毎週土曜の午前0時にフルバックアップを取り、5世代分残す設定にしました。
ところがここで「バックアップを実行するためPCを起動」にチェックを入れると、スリープ中でも自動復帰してバックアップを取得してくれるはずですが、実際には設定した時刻になってもバックアップが取得されませんでした。
もちろん設定した時刻にPCが立ち上がっていればバックアップされるのですが、スリープ中だとバックアップを取得してくれないのです。
調べたところ、原因はスリープのさせ方にありました。
実はスリープさせるのにWindowsメニューから選択するのが面倒だったので、スリープさせるラインコマンドをネットで調べて、ショートカットを作成したりキーボードに記憶させたりして便利に使っていたのですが、このコマンドに問題がありました。
使っていたコマンドはこんなものです。
>rundll32.exe PowrProf.dll,SetSuspendState
SetSuspendState 関数は「システムの電源ステータスの復元が wake イベントでアクティブになるようにする」にはdisableWakeEventパラメータにfalseを渡す必要があるのですが、この方法だと関数にパラメータを渡せず、結果として自動復帰しない設定でスリープになってしまっていたのですね。多分・・・
そこで「SetSuspendState」というフリーソフトを使ってみました。
ソフトのパッケージに添付されていたソースコードを見ると、SetSuspendState関数のdisableWakeEventパラメータはfalseで固定のようです。
ということで、このソフトを使ってスリープさせたところ、無事スリープ中からの自動復帰とバックアップ取得が成功しました!
フリーソフトの作者さん、そしてイーザスソフトウェアさん、感謝です。