rundll32.exe を解析をした結果、rundll32 PowrProf.dll,SetSuspendState の説明が間違ってるサイトが多数あるのが判明(笑)
シャットダウンや再起動のショートカットを作成する | とあるオタクの徒然日記
スリープのコマンド実行方法として「rundll32」コマンドを使用した「rundll32 PowrProf.dll,SetSuspendState」であったり、引数を追加した「rundll32 PowrProf.dll,SetSuspendState 0,0,0」をよく見かけます。 しかし、いくら引数を指定しても「rundll32」の仕組み上、SetSuspendStateがすべてtrue(1)で動作することになります。 ややこしくなるので詳細には書きませんが、ようするにWindows10では休止状態となるようにコマンドが実行されます。 |
実はそうじゃないのだ
関数を実際にトレースしてみた。
SetSuspendState(0,0,0)
を呼び出してるつもりなのだろうが
SetSuspendState(hHandle,hInstance,"0,0,0")
になってるのがお分かりいただけるだろうか
つまり、全て Boolean で true になるので、何をやっても、ウェイクイベント無効での、休止状態になるのである ・ω・
ちなみに何も指定しなかった場合も、NULLが引数になるのではなく、NULLへのポインタになるので、 True であることに変わりはない
Comments