前提・実現したいこと
デバイスを休止状態にさせずにスリープ状態にさせるショートカットを作りたいです。
発生している問題・エラーメッセージ
下記の1と2では内部的に同じ関数を同じ引数で呼んでいると思っているのですが、動作が異なります。
1の方では休止状態になります。
2の方ではスリープ状態になります。
Application.cs
SetSuspendState
Interop.Libraries
PowerState.cs
Interop.BOOLEAN.cs
このソースを見ると同じに見えます。
何か違いがあるのでしょうか?
2の方法は実行に時間がかかるので避けたいです。
C#アプリとしてコンパイルすればいいと言われれば、元も子もありません。
該当のソースコード
1
1rundll32 powrprof.dll,SetSuspendState 0,0,0
2
1PowerShell -Command "Add-Type -Assembly System.Windows.Forms;[System.Windows.Forms.Application]::SetSuspendState('Suspend', $false, $false);"
試したこと
指定されたpowrprof.dllが違うのかと思い、以下の2つも試しましたが、結果は変わりませんでした。
rundll32 "C:\Windows\SysWOW64\powrprof.dll",SetSuspendState 0,0,0 rundll32 "C:\Windows\System32\powrprof.dll",SetSuspendState 0,0,0
また、以下のようにSetSystemPowerState
も使ってみようとしましたが、何も起きませんでした。
rundll32 Kernel32.dll,SetSystemPowerState 1,0
引数を変えてみても、当然ながら結果は変わりませんでした。
rundll32 powrprof.dll,SetSuspendState 1,0,0
補足情報(FW/ツールのバージョンなど)
Windows 11 Home 21H2
回答1件
あなたの回答
tips
プレビュー