1. ホーム
  2. Blog
  3. タイムキーパーのためのJavaScriptその2

タイムキーパーのためのJavaScriptその2

山本 有悟

山本 有悟

技術

山本ゆうごです。ライトニングトークに最適な、タイムキーパーのためのJavaScriptその2です。

今度は音でお知らせします。前回のは結局誰かが目で確認しないとダメだったので、音だけで
1分前と終了が分かるようにしました。1分前に「ビッ」と鳴って、終了時には「ビッビッビッビッ」と
鳴ります。

ゴリゴリの業務系のPCだと、音源ボードがさえついていなかったりするので、BEEP音でお知らせするような仕組みです。JSですがWSH(Windows縛りです)で動作します。ネットに繋がっていない業務系プレにも耐えうるシナリオ設計です。

ソースはいたってシンプル。JavaScriptとはいいながらもWSHのオブジェクトを使いまくりーの、標準出力へのECHO
は、cmd.exeを起動してechoコマンドを出すという他力本願っぷりです。

制限時間は一行目に書いてあるのを適宜書き換えてください。

あとこの仕組みはUIがないので、.jsファイルをダブルクリックするとSleepしている間は動いているのかどうかが分からないです。途中で殺したいときには、タスクマネージャからWScript.exeを殺してください。

以下ソース。これをエディタに貼り付けて、tk.jsなどの名前をつけて、保存してください。あとはダブルクリックで起動します。一行目を変えると制限時間が変わります。

var time_limit = 3 //ここ変えたら制限時間が変わるよ(単位は分)
var wsh = new ActiveXObject("WScript.Shell");

//制限時間一分前にビッと鳴るよ
WScript.Sleep((time_limit - 1) * 1000 * 60);
wsh.Run("cmd /c echo \x07");

//さらに1分経つとビッビッビッビッって鳴るよ
WScript.Sleep(1000 * 60);
wsh.Run("cmd /c echo \x07\x07\x07\x07");

過去に、DreamWeaverをインストールすると、jsという拡張子がWSHじゃなくて、DreamWeaverにとられてしまったことがあります。そうなってしまった人は、拡張子をjseなどに変えるとWSHとして動いてくれたりします。

トップへ戻る