Crystal Dew Blog

Crystal シリーズの開発ブログです

Windows 8 用 スリープ/再起動/シャットダウン スクリプト

◆本エントリの内容は一切保障しておりません。必ず自己の責任で実行してください!! (大人のお約束です) 簡単なスクリプトなので必ず内容を理解してからお試しください。

Windows 8 の終了/スリープって本当に面倒臭い!! というわけで、ネットでショートカットの作成方法などを調べてみたですがなぜか強制シャットダウン orz でうまくいかない。

で、色々考えた結果デスクトップに対して Alt + F4 するのが一番簡単という結論に達しました。が、他のウィンドウがある場合は最小化するなりしてデスクトップを表示しないといけない・・・うん、やっぱり面倒くさい。というわけで、簡単なスクリプトを作ってみました。

参考サイト:http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html

原理は簡単です。

  1. シャットダウンダイアログを表示
  2. 少し待つ (正常にメニューが選択されない場合は待ち時間を長めに設定してください。)
  3. メニューを選択するために実行内容に合わせて ↑ ↓ キーメッセージを送る
  4. ENTER キーメッセージを送って実行
メリット:
  • Windows 8 の標準機能を呼び出しているだけなので相性問題とは無縁?
    ⇒ ただし、シャットダウンダイアログのメニュー内容によってはちゃんと動きませんが・・・。
デメリット:
  • vbs だとorz
  • OS によってシャットダウンダイアログのメニュー並びが異なると思うので汎用性はありません!! キーボードメッセージを各々調整してください。
以下のスクリプトをメモ帳などに貼り付けて ***.vbs の名前でデスクトップなどに保存してください。ダブルクリックすれば動くはずです。

 

[2012/8/21 追記] Sleep/Reboot/Shutdown Scripts for Win8 (下記スクリプトをまとめました)
※ダブルクリックすると即実行されるので中身を良く確認してからお試しください。

⇒ 環境によって登録されている項目が全然違うので参考程度にしてください。

 

 

– Sleep.vbs

———————————————————————

‘シャットダウンダイアログを表示
Set objShell1 = CreateObject(“Shell.Application”)
objShell1.ShutdownWindows()

‘ウェイト 1000ms (正常に動作しない場合は長めに設定してください)
WScript.Sleep 1000

‘スリープを選択するために ↑ キーを送信した後に実行
Set objShell2 = WScript.CreateObject(“WScript.Shell”)
objShell2.SendKeys “{UP}”
objShell2.SendKeys “{ENTER}”

———————————————————————

– Reboot.vbs

———————————————————————

‘シャットダウンダイアログを表示
Set objShell1 = CreateObject(“Shell.Application”)
objShell1.ShutdownWindows()

‘ウェイト 1000ms (正常に動作しない場合は長めに設定してください)
WScript.Sleep 1000

‘再起動を選択するために ↓ キーを送信した後に実行
Set objShell2 = WScript.CreateObject(“WScript.Shell”)
objShell2.SendKeys “{DOWN}”
objShell2.SendKeys “{ENTER}”

———————————————————————

– Shutdown.vbs

———————————————————————

‘シャットダウンダイアログを表示
Set objShell1 = CreateObject(“Shell.Application”)
objShell1.ShutdownWindows()

‘ウェイト 1000ms (正常に動作しない場合は長めに設定してください)
WScript.Sleep 1000

‘最初からシャットダウンが選択されているのでそのまま実行
Set objShell2 = WScript.CreateObject(“WScript.Shell”)
objShell2.SendKeys “{ENTER}”

———————————————————————

【おまけ】 タスクバーにピン止めしたい場合・・・

*.vbs なショートカットは直接ピン止めできないようなので、cscript C:\Sleep.vbs って感じ(Cドライブ直下にスクリプトを配置した場合)のショートカットを作成してそいつをピン止めすれば OK です♪

コメント&トラックバック

  • Comments ( 8 )
  • Trackbacks ( 0 )
  1. shutdown /r とか作って使ってました。何か動作が違うのかな?
    強制の場合 shutdown /r /f とかでいけるはず。。。

  2. > やみぃさん
    普段使うのはスリープなので簡単にスリープさせたかったのですがなかなか良い方法が見つからなかったので上記方法に落ち着きました。

  3. By まっちゃん

    使ってみたのですが、1行目、1文字目から、文字が正しくありません、800A0408というエラー、VB script コンパイルエラーと出ます。できれば、動かしたいのですが。

  4. > まっちゃんさん
    私が使用しているスクリプトをまとめた zip ファイルを公開しました。中身を良く良く確認した上でお試しください。

  5. 私もVB script コンパイルエラーが出ましたが、「”」が「”」になっていたのが原因でした。
    半角に直したら動作しました。
    めっちゃ便利になりました!
    ありがとうございますー。

  6. By ちばとど

    なるほどね!解析がいらないからわかりやすくてイイ。
    めんどくさい操作を代行してくれてありがとう。
    Rainmater の PowreBarという終了ボタンのスキンに仕込みました。

  7. こんな方法もあります

    Windows 8または8.1で高速にシャットダウンを行う – kagasuの日記
    http://d.hatena.ne.jp/kagasu/20150316/1426500488

  8. 情報ありがとうございます。

コメント

*
*
* (公開されません)

Return Top