「Multi Function Alarm」誕生秘話

このソフトは Visual Basic の練習の為に私が生まれて始めて作ったプログラムが原型になっている。

1995年に広島支社から東京本社に戻ってきて Visual Basic でのプログラミングを習得した。プログラミングの革命かと思った。今までは FORTRAN とか COBOL とかを仕事で使っていたが、画面作成はとんでもなく易しい。

ところで東京本社で配属された部署が設計部門に近い所で、時間は自己管理すればいいので昼休みのチャイムも鳴らなかった。そこで昼休みの始まりの時間と終わりの時間、勤務時間の終了を知らせるプログラムを練習がてらに作った。そのときのOSは Windows 3.1、Visual Basic のバージョンは 2.0 だった。

その後自宅にパソコンを買い、Visual Basic でオンラインソフト作家になった。Visual Basic のバージョンは 5.0 だった。

この頃出ていた雑誌にタスクトレイにアイコンを出すプログラムが出ていた。Shell_NotifyIcon という API を使えばアイコンが出るのだなと考え Visual Basic から呼んでみると、なんと出た。しかしアイコンをクリックしても何の反応も無い。他方 Visual Basic のマニュアルの中に「ウィンドウズのサブクラス化」というのが出ていた。これは Visual Basic 5.0 からの機能で、この例題も打ち込んでやってみていた。ここでピンときてしまった。「2つの例題をくっつけてみよう。そうすればタスクトレイのアイコンのクリックを感知できるのではないか!」いとも簡単に成功してしまった。

「これなら常駐するソフトをカッコよく作れるジャン」と考えた。さて何を作ろうか...常駐するソフトの典型なら昔作ったアラームソフトを作ってやろう。

ソフト作成の際3つの設計思想を決めた。

第1は軽いソフトを作ろうということだ。その頃フリーウエアの時計ソフトに不満があった。秒針若しくは秒を表示させると処理が重くなるのだ(当時のパソコンはそんなに早くなかった)。そんな秒単位で正確な処理をやらなければ行けない処理なんてそんなにないと考え、時間監視間隔を標準で10秒に設定した。それにより凄く軽いソフトになった。

第2に時計ソフトにしないということである。私はそもそもデザイン系は得意ではない。ところが時計ソフトはデザインが大きな要素を占める。大抵の場合、時計ソフトにおまけでアラーム機能がつく。その逆はやるまいと決め、徹底的にアラームにこだわる事にした。時計は既にWindows に標準でついているしカッコイイ時計を表示したければ他の時計ソフトを同時に使えばいいのだ。

第3にアラーム時に動作させる項目はなるべく全部やろうということである。このため Win32API(要するに Windows で用意された関数の集まり)の本を最初から見てアラームで使いそうなものを全部入れた。

これらの設計思想を元にMulti Function Alarm を作成した。このソフトは私が2番目にネットに公開したソフトである。


2023年2月、Ver.3.00 から上記の1番目の設計思想を見直すことにした。

1番目の設計思想を決めた時は FMV-DESKPOWER SP(Pentium 150MHz) で開発していた頃だった。

今は、CPU AMD Ryzen 5 5600G(基本クロック3.9GHz) を使っていて、
クロック数は26倍、スレッド数は12倍で単純に考えると312倍になる。

時間監視間隔はかつては10秒だったが、その312分の1でもいいと考えると0.03秒でもいいことになる。
これなら秒単位の処理をさせても重くならないと考え、そうすることにした。

結局、時間監視間隔の標準は0.3秒(300msec)にした。


戻る