Windows10 スリープ用ショートカットを作る(完全版)

デスクトップPCを使っているとPCをスリープさせる時は、スタートボタン>電源 の順にクリックするか 本体の電源スイッチを押す必要があるので、ついつい面倒くさくなって電源をつけっぱなしにしてしまいがちでエコじゃありません。

スリープボタンが搭載されているキーボードもありますが、そのようなキーボードを買わなくても Windows10 PCをスリープさせるタスクを作成して、そのショートカットをデスクトップ画面上に作成すれば、マウスクリック一発でスリープできます。

スリープ用タスクを作成するメリット

この記事を書くのに先立って「windows スリープ ショートカット」といったキーワードで検索したところ、「 rundll32.exe powrprof.dll,SetSuspendState 0,1,0 」のコマンドを実行するショートカットを作成して適宜のアイコンを割り当てる内容の記事がほとんどでした。しかし、Windowsの初期設定でこのコマンドを実行するとスリープではなく 休止モードに移行してしまうため、別途休止モードを無効化しなければなりません。

さらに休止モードを無効化してしまうと、Windows10の高速スタートアップとハイブリッドスリープも利用できなくなるというデメリットがあるので、デスクトップPCの場合は都合がよくありません。

そこで 今回紹介する手順では、rundell32.exe…のスリープ用コマンドを実行する前に 一時的に休止モードを無効化し、実行後に再び休止モードを有効化する一連の処理(=タスク)を タスクスケジューラに登録して、このタスクを任意のタイミングで実行できるようにすることで、Windowsの電源オプションに機能的な制約をかけないスリープ用のショートカットを実現します。

一連の処理はそもそもバッチファイル(.bat)のみで実行可能ですが、休止モードの有効・無効の切り替えに管理者権限が必要で、バッチファイル実行時にWindowsのユーザーアカウント制御(UAC)ダイアログが表示されてしまいます。そこでセキュリティレベルを下げずにタスクスケジューラから最上位特権で実行する方法を採用しました。

スリープ用ショートカットの作り方

Windows10で休止モードを有効に保ったままスリープ用ショートカットを利用できるようにするには、以下の手順でタスクスケジューラにタスクを登録し、当該タスクを実行するためのショートカットを作成します。

(所要時間:約3分)
  1. タスクスケジューラを開く

    スタートボタンの右側にある検索ボックス(虫眼鏡アイコン)で「タスクスケジューラ」と入力し、表示された検索候補から タスクスケジューラ(アプリ) をクリックします。

    または、スタートボタン > Windows管理ツール > タスクスケジューラ の順にクリックして開くこともできます。

  2. タスクの作成をクリック

    画面右側の「操作」メニューから「タスクの作成」をクリックします。

  3. 最上位の特権で実行するにチェック

    タスクの作成ウィンドウが開いたら、全般タブの名前欄に「スリープ」と入力し、最上位の特権で実行するにチェックを入れ、構成を Windows 10にします。説明欄は特に入力しなくても構いません。その他のオプションは初期値のままでOKです。

  4. 実行される操作を作成

    「操作」タブに切り替えて「新規」ボタンをクリックし、①休止モード無効化、②サスペンド(スリープ)実行、③休止モード有効化 の計3つの操作を登録します。

    操作タブで「新規」ボタンをクリックします。
    「新規」をクリック
    プログラム欄に「powercfg.exe」と入力し、引数欄に「-h off」を入力して「OK」をクリックします。
    ①休止モード無効化を作成
    再び新規をクリックしたら、プログラム欄に「rundll32.exe」と入力し、引数欄に「powrprof.dll,SetSuspendState 0,1,0」を入力して「OK」をクリックします。
    ②スリープ実行を作成
    最後にもう一度新規をクリックしたら、プログラム欄に「powercfg.exe」と入力し、引数欄に「-h on」を入力して「OK」をクリックします。
    ③休止モード有効化を作成
    操作タブに登録された「操作」の一覧が、上から「休止無効、スリープ、休止有効」の順に並んでいるか確認します。
    登録した「操作」の順番を確認

    タスクとして登録する各種「操作」は、休止モード無効化、スリープ、休止モード有効化の順に実行する必要があるので登録順に注意しましょう。

    タスク登録時に入力する文字列は以下のとおり。※ Ctrl+Cでコピペできます。

    ❶ 休止モードの一時無効化
    プログラム/スクリプト欄:powercfg.exe
    引数の追加欄:-h off
    
    ❷ サスペンドの実行(スリープ)
    プログラム/スクリプト欄:rundll32.exe
    引数の追加欄:powrprof.dll,SetSuspendState 0,1,0
    
    ❸ 休止モードの再有効化(復帰時)
    プログラム/スクリプト欄:powercfg.exe
    引数の追加欄:-h on
  5. 電源に関する条件を調整してからOKをクリック

    条件タブに切り替え、電源セクションで「コンピューターをAC電源で使用している場合のみタスクを開始する」のチェックを外します。

    デスクトップPCの場合はチェックが入ったままでも問題ありません。その他のオプションは初期値のままでOKです。なお上記解説で触れなかった「トリガー」および「設定」タブについても空欄および初期値のままでOKです。

  6. 作成したタスクの実行(テスト)

    画面左側の「タスクスケジューラライブラリ」をクリック > 中央のタスク一覧から先ほど作成した「スリープ」を選択 > 画面右側の「実行」ボタンをクリックしてタスクを実行します。PCが休止ではなくスリープに移行すれば、タスクの登録は成功です。

    中央のタスク一覧に作成したタスクが表示されていない時はキーボードの「F5」キーを押して最新の状態に画面を更新します。

  7. ショートカットの作成

    ショートカット作成ウィザードを使って、先ほど作成したタスクを実行するためのコマンド「schtasks /run /tn スリープ」を設定します。

    デスクトップで右クリック > 新規作成 > ショートカット をクリックします。
    ショートカット作成画面を開く
    ショートカット作成ウィザードで、「項目の場所」欄に「schtasks /run /tn スリープ」と入力して次へをクリックします。
    実行するタスクの指定
    ショートカットの名前欄に「スリープ」と入力して完了をクリックします。
    ショートカットの名前を設定
    デスクトップ上にスリープ実行用のショートカットができました。
    ショートカットができる

    ショートカット登録時に入力する文字列は以下のとおり。※ Ctrl+Cでコピペできます。

    schtasks /run /tn スリープ

    各文字列間のスペースは半角です。全角スペースだと動作しないので注意してください。

  8. ショートカットのカスタマイズ

    生成されたショートカットのプロパティを開き、実行時の大きさを「最小化」に変更し、お好みのアイコンを指定して調整します。

    作成したショートカットアイコンを右クリックしてプロパティを開きます。
    ショートカットのプロパティを開く
    実行時の大きさを「最小化」に変更し、「アイコンの変更」をクリックします。
    アイコンの変更をクリック
    アイコンがない旨のメッセージが出たらOKをクリックします。
    OKをクリック
    Windowsシステム内のschell32.dllに含まれるアイコン一覧からお好みのアイコンを選択してOKをクリックします。
    アイコンを指定する
    アイコンが変更されたのを確認し、適用>OKの順にクリックします。
    OKをクリック
    デスクトップ上のショートカットのアイコンが変化したら調整完了です。
    調整完了
  9. 動作を確認して作業完了

    出来上がったショートカットアイコンをダブルクリックして動作を確認したら作業完了です。デスクトップ以外にもスタートメニューやタスクバーにピン留めして使うのも便利です。

    スリープからの復帰時に powercfg.exeを実行するためのコマンドプロンプト(黒い背景のウィンドウ)が表示されますが、これは休止モードを再度有効するための処理です。自動的に消えるので問題はありません。