windows11PCで任意時間にスリープ起動/解除する方法
パソコンでとあるプログラムを毎日使っているのですが使っていない時間は節約のため
スリープしたいと考えております。人が手動でやるのではなく自動で行う方法を探しております。
OSはwindows11 homeで2023年1月に購入したDELL XPSのノートパソコンです。
調べたところwindowsの標準機能であるタスクスケジューラが有効と分かりました。
タスクスケジューラにて起動と解除の二つのタスクを作成し、任意時間に発動させる。
以下自分で試したことです。
[スリープ状態にする(起動)]
こちらのメソッドでできることが分かりました。
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.application.setsuspendstate?view=windowsdesktop-8.0
当方C++の書き方がわからずpythonは少し知っていたのでCHAT-GPTに聞いてpythonで上記メソッドを起動するようにしました。
import ctypes
kernel32 = ctypes.WinDLL('kernel32')
powrprof = ctypes.WinDLL('powrprof.dll')
# 自動起動したいで引数はこのように指定しました。
result = powrprof.SetSuspendState(False, False, False)
このpythonファイルをタスクスケジューラから起動させました。
結果、成功しスリープ状態になりました。
[スリープから復帰(解除)]
結果、解除されましたが画面スタンバイがオフのままでした。
適当なキーを押下してスタンバイを解除しました。
[お聞きしたいこと]
①起動を外部ファイルではなく、タスクスケジューラの操作のみで完結できないか?
ネット情報から試しに以下のように打ってみましたがスリープ起動するものの解除はされませんでした。
プログラム/スクリプト(P) C:\WINDOWS\system32\rundll32.exe
引数の追加(オプション)(A) PowrProf.dll,SetSuspendState FALSE,FALSE,FALSE
もし方法が無ければ諦めて外部ファイルを起動しようと思います、、、
②解除時に画面スタンバイも同時に解除できないか?
画面スタンバイ状態だとスリープ解除されているか一見してわからないので同時に解除したいのですが、こちらは調べても全く方法がわかりませんでした。
せめて同時ではなくとも、二つのタスクを登録して時差で発動でも構いません。
ちなみに
縁がありDELLサポート,Lenovoサポート,PCなんでも屋さんの3社に同じことを聞きましたが全てできないor分からないと言われました。重要ありそうな事なのに結構難しいことなんだと実感させられました。
どなたかご回答いただければ幸いです。
何卒宜しくお願い致します。