by Fire and Ice
以前、iPhone4を購入したのですが、アプリで時間つぶしするのも飽きていまい、最近はビデオを持ち歩いて見るようになりました。
iPhoneで再生できるビデオのエンコード種類は、H264(mpeg4)に限定されています。そのエンコードに結構な時間がかかるので、寝る前にエンコーダを動かしてエンコードが終わったら自動的にパソコンをシャットダウンしたいと思いました。そこで、フリーのシャットダウンをソフトを探したのですが、イマイチしっくり来るものがありませんでした。じゃぁしょうが無いなということで、自分で作ることにしました。どのような言語で作ろうかと、考えた末選んだのは、C#です。
C#は、framework .NETを利用する言語でMSが最近力を入れているものであるため、自分の勉強をかねてC#にした次第です。
まずは、ByeNowの画面紹介です。画面はシンプルで、タブ2つにすべての機能が盛り込まれています。

ByeNow!は、PCシャットダウンツールです。
指定した時間、もしくはすぐに、PCシャットダウン等を行います。
Bye Now(バイ・ナウ)は、"じゃ、またね"的な意味合いです。
・CPU負荷が一定以下になってからPCをシャットダウン等させられます。
・シャットダウンの条件は時間指定のほか、CPUの負荷状態を指定できます。
・直感的に操作できるように作りました。
ByeNow-setup.exeを適当なフォルダにコピーして実行するとインストーラーが起動しますので指示に従ってください。
ByeNowの実行には、".NET Framework 4"が必要です。
※Windows7にはデフォルトで導入されているようですが、それ以外のOSでは自分でインストールする必要があります。
".NET Framework 4"が無い環境で、ByeNow.exeを実行した場合、 OSから".NET Framework
4"が無いとメッセージが表示されます。
その場合は、下記のサイトから".NET Framework 4"をダウンロード&インストール してください。
(参考) MSの".NET Framework 4"ダウンロードサイト
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
なお、レジストリは一切利用していません。
・「現在時刻」:現在時刻が表示されます。
・「設定時刻」:予約した動作時間が表示されます。
・「残り時間」:シャットダウン等までの時間を"日数.時間:分:秒"でカウントダウンします。
なお、条件にCPU使用率を指定して、CPU利用率を計っている場合は、"CPU使用率測定中"と表示されます。
・「予約」タブ:シャットダウン等を行う条件設定画面を選択します。
・「第一条件」:動作させるまでの時間を設定します。
・「カウントダウン」:動作までの残り時間を設定します。
時分の指定はプルダウンメニューで選択するか、直接数字を手入力します。
手入力した場合、時は999時、分は999分まで指定できます。(24時、60分を超えた指定をしても自動的に再計算されます)
・「日時指定」:動作日時を指定します。
・「第二条件」:第一条件が満たされてから判断されます。
CPU使用率を指定します。なお、CPU使用率は10秒間の平均で見ています。
・「条件が整った時」:第一条件、第二条件が成立したときに行う動作を指定します。
選択可能な動作は「テストモード」を除き「今すぐ」タブで説明します。「テストモード」については利用方法で説明します。
・「実行」ボタン:種々の条件で実行する場合に押します。
実行中は、「中止」ボタンに名前が変ります。
・「今すぐ」タブ:設定確認など無く、即実行するボタンが並んでいます。
それぞれのボタンを押してしまったら中断はできません。
・「シャットダウン」 :ボタンを押すと即シャットダウンに入ります。
PC環境によっては、「電源オフ」と同じ動作をします。
・「電源オフ」:ボタンを押すと即電源オフに入ります。
PC環境によっては、「シャットダウン」と同じ動作をします。
・「リブート」:ボタンを押すと即リブート(再起動)に入ります。
・「ログオフ」:ボタンを押すと即ログオフに入ります。
・「スリープ」:ボタンを押すと即スリープにはいります。
PC環境によっては期待と異なる動作をする場合があります。
・「ハイバネーション」:ボタンを押すと即ハイバネーションに入ります。
PC環境によっては期待と異なる動作をする場合があります。
・「プロセスの強制終了」:OSに対してシャットダウン要求をかけた場合、通常は起動している 各プログラムやドライバソフトもそれに従いますが、まれに従わない
ものがあります。そのような場合、PCがハングアップしたような状態になってしまうます。原因はそれらプログラムの不具合や処理途中であり終了できない状態であることによりますが、その場合でも強制的に終了を行います。強制的に終了を行うため、処理途中であれば不都合が生じる場合も考えられます。この設定は、「予約」、「今すぐ」の両方で有効です。
・「最小化ボタン」:ウィンドウの最小化ボタンを押すとタスクトレイモードに移行します。
1.スケジューリングする
「予約」タブで第一条件、必要に応じて第二条件を指定して、「実行」ボタンを押してください。
第一条件の設定無しに、第二条件のみを指定することはできません。第二条件は、第一条件が成立した後に評価されます。よって、設定した時間がきたらCPU利用率を測ってシャットダウン等の動作となります。
CPU利用率は瞬間を測定しているのではなく、10秒間の平均で見ています。よって、はじめの10秒間の平均が指定したCPU利用率を下回らない場合、次の
10秒間計測を行います。計測後のCPU利用率は"現在xx%"として表示されます。
第一条件の設定内容によっては、すぐに、もしくは1分以内に第一条件が成立します。その場合、誤設定によるシャットダウン等を防ぐために確認のメッセージが
表示されます。
2.即実行する
「今すぐ」タブにあるボタン表記の動作をします。 "よろしいですか?"的な確認は入らずに即実行となります。
3.テストモード
特にCPU負荷を見てシャットダウンさせる場合に、どの程度のCPU負荷であればシャットダウンさせて良いかの判断に迷うかと思います。
そのようなときのためにテストモードを付けてあります。テストモードにした場合、条件が整ったというメッセージをポップアップさせるだけで、実際にシャットダウンはしませんので、試行錯誤してみて下さい。
Microsoft Visual C# 2010
1.00 - 2011.04.20 初版
1.10 - 2011.10.16 フォームの最小化時にタスクトレイへ移行するようにした
1.11 - 2011.11.12 いくつかのボタン類にバルーンヘルプを追加した。その他、不具合解消を行った。
Windows 7(32bit)/Vista/XP/2008/2000
※シャットダウン制御にWMI(Windows Management Instrumentation)を使用しているのでWMIが実装されたOS(Windows2000以降?)が対象です。
また、C#(Sharp)2010を利用しているので、".NET Framework 4"が必須です。
Windows2000以降で動作すると思いますが、動作試験は以下の環境でのみ行っています。
1. Windows 7 Ultimate SP1(32bit)
2. Windows XP (XP利用のPCおよび、Windows7上のXPモードで確認)
このプログラムを使用したことでPC不具合が生じたり、予期せぬ何らかのトラブルが発生したとしても、作者がその責任を負うことは一切ありません。
また、不具合等についても必ずしも解決するとは限りません。すべて自己責任でご利用ください。
ByeNowのダウンロードは、Vectorからお願いします。
Vector ByeNowダウンロードサイト http://www.vector.co.jp/soft/winnt/util/se485900.html