Windowsを目覚まし時計にする

---
### 前段

リモートワークが普及していけば、自宅のPCを24時間つけっぱなしという事もあるでしよう。

ということで、コマンドラインでmp3再生をするツールを作ったので、これを使って、WindowsPCを目覚まし時計にする方法を紹介します。

---
### 動作環境

- 最近の Windows PC
- スピーカー
- WindowsMediaPlayer がインストール済
- .NET Framework 2.0 または .NET Framework 4.0

---
### 音楽ファイルをディスクに保存する

mp3形式でも、いいし、AudioCDをCD-ROMドライブにセットしてもいいけど、ここでは音楽ファイルを用意する。

以後

- MP3ファイルが保存されているディレクトリを**「c:\mp3\」**とする。

---
### 利用ツール

WindowsMediaPlayerのCOMコンポーネントを使って、コマンドラインで動作するMP3プレーヤーを作ったので、それをダウンロードして、zip展開します。

[コマンドラインでサウンド(MP3や音楽CD)鳴らすプログラム](http://rocketeer.dip.jp/sanaki/free/free161.htm)
↑からダウンロードして、適当なディレクトリへzip解凍して、ひとまずおしまい。

---
#### 利用ツール(sWMPCui.NET4.exe)

.NET Framework2.0用が**sWMPCui.NET2.exe**で、.NET Framework4.0用が**sWMPCui.NET4.exe**

.NETとCOMの相互運用のために**AxInterop.WMPLib.dll**と**Interop.WMPLib.dll**も必要。

**「c:\Program Files\sWMPCui\」** 以下に配置した。

```
C:\>"c:\Program Files\sWMPCui\sWMPCui.NET4.exe"
sWMPCui.NET4.exe ver 1.0.0.1
                            created by active@window.goukaku.com

sWMPCui.NET4.exe [options]

      Compiled ver.v4.0.30319
           Run ver.v4.0.30319(Win64)
-----------------------------------------
sWMPCui.exe <<OPTIONS>>
    OPTIONS:
    /d <<FILEorDIRECTORY>>
    /s <<FILEorDIRECTORY>>
    /audioCD
    /volume 0-100
    /debug
    /verbose
    /help
No Audio File Selected

C:\>
```

**「/audioCD」**ではCD-ROMドライブにセットされた音楽CDが再生対象。
**「/d パス」**で、指定されたパスのファイルが再生対象。
**「/s パス」**で、指定されたパス以下のファイルを再帰的に再生対象。

その中からランダムに一つが選択されて再生される。

さて、普通にコマンドラインから(パスが通っているという前提で・・・)

`c:\>sWMPCui.NET4.exe /s c:\mp3\*.mp3`

で、**「c:\mp3\」** 以下のサブディレクトリも含めた拡張子 .mp3 のどれかが再生される。

例えば、
こんな感じで、引数が想定通りかどうかを**「/verbose」**を付けて確認する。

```
C:\>"c:\Program Files\sWMPCui\sWMPCui.NET4.exe" /d c:\mp3\*.mp3 /verbose
Rand Value = 0
------------------------------
0: c:\mp3\エネルギーをためる（ロックマン風）.mp3
1: c:\mp3\考え事の吹き出し.mp3
total: 2
------------------------------
Selected File: c:\mp3\エネルギーをためる（ロックマン風）.mp3
       Volume: 100
if you want exit, Press any key

C:\>
```

[利用したmp3はここのもの](https://dova-s.jp/se/)を使いました。
c:\mp3\以下の拡張子mp3のファイルは2つで、乱数は**「0」**だったので、一つ目が再生されました。
・・・という感じ。

ちなみに何かキー入力すれば、再生は停止する。

---
### タスクスケジューラに登録する

例えば、

- MP3ファイルが保存されているディレクトリが**「c:\mp3\」**とする。
- 上記の再生プログラムが**「c:\Program Files\sWMPCui\sWMPCui.NET4.exe」**とする
- 毎日**07:00**の目覚ましとしてセットする

まずは、スタートメニューから**「コンピュータの管理」**を選択して起動
![task0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/40186730-da11-c8fb-a7de-b177c333fed6.png)

**「タスクスケジューラ」**から**「タスクの作成」**を選択
![task1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/e9a1d79b-ce97-b6c8-fadd-d0fb5169d216.png)

**まずは、名前と、起動時のアカウントの設定**
ログインしっぱなしなのか、サインアウトしているのか、などで設定方法は異なると思うので、各自の環境に合わせて設定すること
![task2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/94d8b39e-1823-79dc-1731-9b2b6948f295.png)

**起動するタイミング(スケジュール)の設定(詳細)**
![task3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/0a2bd2fa-ba6e-a318-f3bb-d812db59f010.png)

**起動するタイミング(スケジュール)の設定(一覧)**
![task4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/f9fb7fa3-01bd-5cf3-a70d-e846aedd7698.png)

**起動するプログラムの設定(詳細)**
![task5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/c5e9280d-2ced-0f65-d841-b035d9d0f03d.png)

**起動するプログラムの設定(一覧)**
![task6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/eeac5da6-8a0f-87bd-3455-d28f06122e53.png)

**設定が完了すると、タスクの一覧に登録されます**
![task7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/42b8bcb2-768a-adb5-7721-caf5976aa8fd.png)

後は、時間が来るのを待つだけ・・・

---
#### 設定のコツ

一度、近くの時間(例えば5分後の時刻とか)で設定して、ちゃんと5分後にサウンド再生されるかどうか確認してから、朝の目覚ましの時刻を設定するとよいかもしれない。

---
### その他

目覚ましだけじゃなくて、リモートワークの開始時間(10:00とか)とか、終了時間(17:30とか)とかにも設定してもよいかもしれない。

---
### デメリット

- 再生を途中で止められない (タスク起動時にコマンドプロンプトを表示する設定にすればできないことはないけど・・・)
- スヌーズ機能がない
- スピーカーにも電源を夜通し通しておく必要がある

---
### 参考

[音声を再生したり、さらには録音したりするプログラムを何本か作った](https://qiita.com/tomoki0sanaki/items/98ec5cc02f82512736c4)

---
### 以上