2009-06-09

この上なく簡易なアラームが欲しい

諸氏は、下記のような事をどうしているのだろうか。

時間がきたら、メッセージボックスを出すだけで良い

・ただし、時刻の登録にマウスを操作するような煩雑さは、断じて許容できない

・常駐すんなボケ

とりあえず、if文なんて高尚なものを使ったことなかったけど、バッチファイルでやってみた。

@echo off
REM 1-31の日付でしか登録できない低能アラーム
REM 時刻は必ず入力されるものとみなす
REM よって、組み合わせはDAY×MESGのみで考える。

REM 変数初期化
SET yotei_day = 0
SET yotei_mesg = ""

SET /P yotei_time="アラームを表示する時刻 :"
SET /P yotei_day="アラームを表示する日付(1-31で指定、省略した場合は今日) :"
SET /P yotei_mesg="表示するメッセージ(省略時は、予定チェック) :"

REM 条件分岐。バッチのelseはしょぼすぎる。複数条件指定できない??
if "%yotei_day%" == "0" goto :NO_DAY
if "%yotei_mesg%" == "" goto :NO_MESG

REM 指定したもの -> DAY,MESG
echo %yotei_day%日の%yotei_time%に通知します'
at %yotei_time% /NEXT:%yotei_day% net send pc_Name "%yotei_mesg%"
goto :SLEEP


:NO_DAY
REM 分岐: + NO_MESG
if "%yotei_mesg%" == "" goto :NO_MESG_NO_MESG
REM 指定したもの -> MESG
echo 次の%yotei_time%'に通知します'
at %yotei_time% net send pc_Name "%yotei_mesg%"
goto :SLEEP


:NO_MESG
REM 分岐: + NO_DAY
if "%yotei_day%" == "0" goto :NO_DAY_NO_MESG
REM 指定したもの -> DAY
echo %yotei_day%日の%yotei_time%に通知します'
at %yotei_time% /NEXT:%yotei_day% net send pc_Name "予定チェック"
goto :SLEEP


:NO_DAY_NO_MESG
REM 指定したもの -> なし(時刻のみ)
echo %yotei_day%日の%yotei_time%に通知します'
at %yotei_time% net send pc_Name "予定チェック"
goto :SLEEP

REM 終了
:SLEEP
ping 127.0.0.1 -n 2 > nul:

これに適当名前をつけて、ランチャのfenrirで起動させる。

キーボードのみの操作で済むので、とても快適ではあるものの、見ての通りnet sendを使うため、

Windows messenger serviceを起動させるという、常駐ソフトの方がマシな本末転倒なウンコーな一品である。

ActiveDirectoryとかグループポリシーでmessenger制限されてたら使えないし。

VBWSHなら色々できそうだけど、これ以上機能はいらんのよね。いっそ、メッセージはtxtに書き込んで、それを開くだけにするか・・・・。

### しかし「>」を表示させるのに、数値参照文字じゃないとダメとか・・・。

### >を半角にしたら>になりますよっと。。。

  • VBScriptでメインのPG作って、cscript1行の起動バッチを作って 起動バッチをfenrirとやらから起動すりゃいいじゃん VBSから時刻入力用にInputBoxでも出して、 んで時間来たらメッセージボック...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん