2014-12-09
[Devel]PC使用中に寝落ちしたときに自動的に電気とテレビを消すようにした話
どうも、きゅーこんと申します。
この記事は、おうちハック Advent Calendar 2014の9日目の記事です。
昨日は大和田さんの「ハッカソンってなに?」でした。
ハッカソンは楽しいので、積極的に参加していきたいです!
さて、僕の記事はこんな感じです!
よく寝落ちする。
寝落ちしたときに電気やテレビが点いてると熟睡できない。
朝方に朦朧としながら起きて通販番組を目にするのはもう御免だ!
ということで、今回は、先日の記事で解説した「赤外線学習リモコンR2-D2」を利用して、寝落ち時に電気とテレビを消してもらいます。
では、作り方を見ていきましょう。
必要なもの
ハードウェア
ソフトウェア
専用スクリーンセーバー
作り方は後述します。
手順目次
次の手順で進めます。
- Visual Studio Community 2013のインストール
- スクリーンセーバーの作成
- スクリーンセーバーのインストール
1.Visual Studio Community 2013のインストール
- Visual Studio Community 2013 - Visual StudioからVisual Studio Community 2013をダウンロードし、インストールする。
2.スクリーンセーバーの作成
- 第二工区様の下記ページからサンプルコードをダウンロードする。
スクリーンセーバー サンプルコード (その1): 第二工区 - 解凍する。
- DateTimeScreenSaver.slnを開く。
- SaveForm.csのSaverForm(Screen saverTargetScreen)の末尾に下記を追加する。(IPアドレス、ポート、JSONファイル名は個々の環境に合わせてください)
WebRequest wrGETURL = WebRequest.Create("http://192.168.0.1:8000/light_off.json"); WebResponse res = wrGETURL.GetResponse();
- SaveForm.csのSaverForm_FormClosed(object sender, FormClosedEventArgs e)の末尾に下記を追加する。(IPアドレス、ポート、JSONファイル名は個々の環境に合わせてください)
WebRequest wrGETURL = WebRequest.Create("http://192.168.0.1:8000/light_on.json"); WebResponse res = wrGETURL.GetResponse();
- Visual Studioのメニューにて[ビルド] > [ソリューションのビルド]をクリックする。
3.スクリーンセーバーのインストール
- csDateTimeScreenSaver\DateTimeScreenSaver\bin\Debugを開く。
- ssDateTimeScreenSaver.exeをssDateTimeScreenSaver.scrにリネームする。
- ssDateTimeScreenSaver.scrをC:\Windows\System32に移動する。
- ssDateTimeScreenSaver.scrを右クリックして、コンテキストメニューの[インストール]をクリックする。
以上で完成です!!おつかれさまでした
備考
Windows7 Home Premiumでは無理なので、本記事のようにいたしましたが、Windows7 Professional以上であれば、グループポリシーエディタでスクリーンセーバーの起動をイベントログに記録できるため、そちらをタスクスケジューラでトラップして、R2-D2にGETリクエストを送る方法もあるかと思います。
参考
僕の記事はここまで。
さて、明日のおうちハック Advent Calendar 2014の記事は…と紹介しようとしましたが、
今週末までのご担当が埋まってません!どなたか記事をお願いします!