WSHとIPMessengerの連携スクリプト

社内の別のグループから「IPmsgでアラートがどーのこーの」という話が聞こえてきたので
昔作ったJScript(WSH)のプログラムを思い出しました。

以下がそのプログラムです。
目的としては毎日15時になったらエンジニアの人に「15時だから休憩してください」とメッセージを送るというものでした。
今振り返ると本当にしょーもないスクリプト。

/**
 * コーヒーブレイクプログラム
 * 15:00にメンバーに休憩メッセージを送信する
 */
// メッセージ
msg = "15時ですので休憩してください\r\n\r\nみんな休憩するんだ!;
member = new Array();
member = ['chisei',
          'hoge',
          'fuga'];

WshShell = new ActiveXObject("WScript.Shell");

for (var i in member)
{
    // IPmsgを起動しメンバーに対してメッセージを送信する
    ipmsg = "c:/program files/IPMsg/ipmsg.exe /MSG " + member[i] + " " + msg;
    WshShell.Exec(ipmsg);
}

当時の社員の人に「ぶっちゃけ便利でした?」
と聞いたところ「スパムみたいでうざかったよ^^」
と爽やかに否定されました。



前にエントリーに書いたとおり僕はIPMsgは急ぎめの通知に使われるので集中力を妨げられて使いたくないと思っています。一応最近はちょいちょいIPMsgを落としていますが、たまにメッセージを送受信したいときがあったりします。

先程のスクリプトを少し拡張してみました。機能は以下のとおり

  • 引き続き送信だけ行える
  • 第一引数にメッセージを入れることができる
  • IRCに返信してね♪」と本文に添えることができる
/**
 * コーヒーブレイクプログラム
 * 15:00にメンバーに休憩しなさいメッセージを送信する
 */
// メッセージ
msg = "(IRCで返信してね♪)";
member = new Array();
member = ['chisei'];

WshShell = new ActiveXObject("WScript.Shell");

arg = WScript.Arguments;
// 引数判定
if(arg(0)) {
    msg = arg(0) + "\n" + msg;
}

for (var i in member)
{
    // IPmsgを起動しメンバーに対してメッセージを送信する
    ipmsg = "c:/program files/IPMsg/ipmsg.exe /MSG " + member[i] + " " + msg;
    WshShell.Exec(ipmsg);
}

相変わらずしょーもない。
もう少し拡張してIRCのプロトコルと連携させたりしてしょーもなさをバージョンアップさせていきたい。