こんにちは、阿久津です。日がな一日ディスプレイの前に座っていますと、あらゆることをコンピュータで制御したくなります。正確な年は忘れましたが、米国の大手ピザチェーン店がインターネット経由で注文を受け付けるようになり、それをUNIXから注文するコマンドを書いたハッカーの気持ちに強い共感を覚えます。同様の意見を持つ方も少なくないでしょう。

元々WindowsはGUI(グラフィカルユーザーインタフェース)操作を前提にデザインされたOSのため、CUI(キャラクターユーザーインタフェース)に強くありません。それでもMicrosoftはWindows Services for UNIXやWindows PowerShellといったコマンドラインからの操作を強めるツールを用意してきました。

確かにWindows Services for UNIXはそれなりに便利でしたが、サポートOSがWindows 2000/XPおよびWindows Server 2003に限定され、現行OSであるWindows 7での動作は未サポート。また、64ビット版Windows OSへの対応もなされていないため、現在であればCygwinを導入するか、仮想環境でLinuxを動かし、端末エミュレータで接続した方が簡単です。

しかし、あくまでもCygwinやLinuxはWindowsとは異なるOSのため、ネットやLAN上のデバイスに対する操作に用いるのは便利ですが、目の前にあるコンピュータを制御する、という意味では役に立つとは言えません。例えば標準搭載されている「shutdown.exe」は、文字どおりコンピュータの電源を操作するコマンドですが、Windows 7から多用されるようになったスリープモードへの移行はサポートしていません(図01)。

図01: 「shutdown.exe」がサポートしているのは、ログオフやシャットダウン、再起動、休止のみです

コマンドラインから「rundll32.exe Powrprof.dll,SetSuspendState」とPowrprof.dllファイルに用意されたAPIを直接呼び出すことで、コマンドラインからスリープモードへ移行できますが、API名からもわかるとおりサスペンド(休止状態)であるため、スリープモードへの完全移行は不可能です。

具体的には休止状態機能を無効にすることでスリープモードへ移行することが可能ですが、それも少々煩雑な話。もちろん、電源オプションダイアログからスリープへ以降するタイミングをあらかじめ調整しておけば済む話ですが、離席するタイミングは決まっているわけではありません(図02~03)。

図02: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「rundll32.exe Shell32.dll,Control_RunDLL powercfg.cpl,,1」と入力して<OK>ボタンをクリックします

図03: これで電源オプションダイアログが起動しました。ここからスリープモードへ移行するタイミングを調整できます

そこで試して欲しいのが「NirCmd」というツールです。Windows OSのカスタマイズをあれこれと試している方ならご存じのとおり、コンテキストメニューやプロパティダイアログのオブジェクトを管理する「ShellExView」や、DNSレコードを閲覧する「DNSDataView」などをリリースしているNirSoftの成果物の一つ。

前述のリンク先ではNirCmdが実行できるコマンドが並んでいます。CD/DVDドライブの開閉を制御する「cdrom oepn」「cdrom close」、マスターボリュームのオン/オフを制御する「mutesysvolume 0(1)」など便利なオプションが多数用意されているため、Windows OSのカスタマイズを楽しんでいる方には有益な存在になるでしょう。今回はNirCmdを使用し、コンテキストメニューからディスプレイをパワーオフにするチューニングをお届けします。

1.「%USERPROFILE%\bin」フォルダーを作成します。
2.NirCmdをダウンロードし、ステップ01で作成したフォルダーに展開します。
3.展開した各ファイルの「ブロックの解除」を実行します。
4.管理者権限で「regedit」を実行します。
5.レジストリエディターが起動したら、HKEY_CLASSES_ROOT\DesktopBackground\Shellキーを開き、MonitorOffキーを作成します。
6.MonitorOffキーを開き、文字列値「icon」を作成します。
7.文字列値「icon」のデータ値を「C:\Windows\System32\powercpl.dll,0」に変更します(パスはご自身の環境によって変更します)。
8.文字列値「Position」を作成し、値のデータを「Bottom」に変更します。
9.文字列値「MUIVerb」を作成し、値のデータを「モニターオフ(&O)」に変更します。
10.MonitorOffキーの下にcommandキーを作成します。
11.commandキーを開き、文字列値「(既定値)」の値のデータを「C:\Users\kaz\bin\nircmd.exe monitor off」に変更します(パスはご自身の環境によって変更します)。
12.[F5]キーを押してから、レジストリエディターを終了させます。

これでチューニングが終了しました(図04~31)。

図04: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「%USERPROFILE%」と入力して<OK>ボタンをクリックします

図05: エクスプローラーが起動したら、ツールバーにある<新しいフォルダー>をクリックして新規フォルダーを作成します

図06: フォルダー名を「新しいフォルダー」から「bin」に変更します

図07: 「NirCmd」のWebページにアクセスし、お使いのWindows 7にあわせて「Download NirCmd(64-bit)」のリンクをクリックします。通知バーが現れたら<ファイルを開く>ボタンをクリックしてください

図08: エクスプローラーで圧縮ファイルが開きます。このファイルを図04~06で作成したbinフォルダーにドラッグ&ドロップしましょう

図09: ファイルの展開を終えたら「nircmd.exe」ファイルを右クリックし、メニューから<プロパティ>をクリックします

図10: プロパティダイアログの<ブロックの解除>→<OK>とボタンをクリックします。図09から続く本手順を「NirCmd.chm」「nircmdc.exe」にも実行してください

図11: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「SystemPropertiesAdvanced.exe」と入力して<OK>ボタンをクリックします

図12: システムのプロパティダイアログが起動したら、<環境変数>ボタンをクリックします

図13: 「ユーザー環境変数」の<新規>ボタンをクリックします

図14: 変数名に「PATH」と入力し、変数値に「%USERPROFILE%\bin」と入力して<OK>ボタンをクリックします

図15: <OK>→<OK>とボタンをクリックしてダイアログを閉じます

図16: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図17: レジストリエディターが起動したら、HKEY_CLASSES_ROOT\DesktopBackground\Shellキーを開いて右クリックします。メニューから<新規>→<キー>とクリックしてください

図18: キー名を「新しいキー #1」から「MonitorOff」に変更します

図19: MonitorOffキーを開き、右ペインの何もないところを右クリックして、メニューから<新規>→<文字列値>とクリックします

図20: 値名を「新しい値 #1」から「icon」に変更します

図21: 文字列値「icon」をダブルクリックし、値のデータを「C:\Windows\System32\powercpl.dll,0」に変更して<OK>ボタンをクリックします(パスはご自身の環境によって変更してください)

図22: 右ペインの何もないところを右クリックして、メニューから<新規>→<文字列値>とクリックします

図23: 値名を「新しい値 #1」から「Position」に変更します

図24: 文字列値「Position」をダブルクリックし、値のデータを「Bottom」に変更して<OK>ボタンをクリックします

図25: 右ペインの何もないところを右クリックして、メニューから<新規>→<文字列値>とクリックします

図26: 値名を「新しい値 #1」から「MUIVerb」に変更します

図27: 文字列値「Position」をダブルクリックし、値のデータを「モニターオフ(&O)」に変更して<OK>ボタンをクリックします

図28: MonitorOffキーを右クリックし、メニューから<新規>→<キー>とクリックします

図29: キー名を「新しいキー #1」から「command」に変更します

図30: 文字列値「(既定値)」をダブルクリックし、値のデータを「C:\Users\kaz\bin\nircmd.exe monitor off」に変更して<OK>ボタンをクリックします(パスはご自身の環境によって変更してください)

図31: 操作を終えたら[F5]キーを押してから<×>ボタンをクリックしてレジストリエディターを終了させます

それでは結果を確認してみましょう。デスクトップの何もないところを右クリックしますと<モニターオフ>という項目が追加されていますので、同項目をクリックしてください。これでディスプレイがパワーオフになります。名称などはステップ09で作成した文字列値「MUIVerb」のデータ値がそのまま反映されますので、お好きなものに変更してください。今回は文字列を減らすために「ディスプレイ」ではなく「モニター」という名称を用いました(図32)。

図32: デスクトップの何もないところを右クリックすると表示されるコンテキストメニューに<モニターオフ>が加わりました。同項目をクリックすることでディスプレイがパワーオフになります

また、図11~15で行っている環境変数「PATH」の追加ですが、本チューニングは直接関係ありません。今後NirCmdをコマンドプロンプトなどから使用する際、PATHを通すことで操作性が向上することを踏まえ同手順を加えました。不要な方は同手順を実行しなくとも問題ありません。なお、以前寄稿したWin 7編: コンテキストメニューから電源操作を行うと併用することで、利便性が大きく向上するはずです。その際はMUIVerbによる項目名の変更をお勧めします(図33)。

図33: 図11~15の手順を行うことでNirCMDをコマンドプロンプトから呼び出すことが可能になります

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)