Okaeri

newiCon


スリープからの復帰時に「○○さん、おかえりなさい」と、おでむかえの挨拶をしてくれるソフトです。また、正月3が日の間は「謹賀新年」「明けましておめでとうございます」と、昔のClassical Mac OSのように新年のメッセージを表示します。

本バージョンは、2010年12月31日までの動作期限を設けています。


<<ご注意>> 

以下のような場合に、正常に動作しない可能性があります。

 ・バックグラウンドのアプリケーションの実行を止めるようなソフトウェアが動作している場合


id1756_textmedium


newyear



675475523_62




「おかえり」が切り開く、古くて新しい「起動メッセージ」の世界

昔のMac OSでは、誕生日に起動すると「誕生日おめでとう」三が日には「あけましておめでとうございます」といったメッセージを表示したものでした。


Mac OS Xになって、基本的にシャットダウンせずにスリープさせて使うようになったため、「起動メッセージ」というものの必然性は薄くなってきたといえます。Macの起動音などもいいかげんに新機種では変えてほしいものです。


しかし、シャットダウンではなくスリープが前提であるため、「起動」を行う回数が圧倒的に減ったのもまた事実です。このことを理由に起動音が更新されなくなって久しいものがあります。


ならば……スリープ解除を検出して、いろいろなメッセージを表示させたらよいのではないか、誕生日には「誕生日おめでとう!」、三が日には「あけましておめでとうございます」と。


しかし、これは口で言うほど簡単な話ではありません。スリープからの復帰をすぐさま検出するのは、実はかなり難しい作業だからです。スリープ解除を通知するようなOS内部のサービスを使ったとしても、スリープからの復帰は10数秒以上経過してからようやく分かるぐらいです。PowerBookやiBookは開けた瞬間に画面が表示されて、まるでPDAのようにすぐに操作が可能になりますが、実は「ユーザーの目に見える部分だけ元に戻した」というのがこの時点の状態です……


内部の各種サービスはその裏側で復帰作業を続行しており、完全にスリープから復帰するにはしばらくの時間を要するのです。


そこで、すぐにスリープ解除を検出するには、まったく異なるアプローチが必要になるわけで……そうした試作品をAppleScriptで作ってHDDの中にストックしていました。試作品を引っ張り出してきて、ユーザー名とメッセージ表示させるようにしたのが、この「おかえり」です。

「おかえり」によって、スリープ解除時にいろいろなメッセージを表示できるようになりました。メッセージだけでなくスリープ解除サウンドなどを鳴らしたり、指定のAppleScriptを実行するといったことも可能になるわけで、割と応用範囲は広そうな感じです。


使い方


ダブルクリックで起動します。それだけです。初回起動時にこの「おかえり」をログイン時の起動項目に自動登録します。


Okaeriを起動して、Macを一度スリープ状態にした後、スリープ解除すると……


id1756_textmedium


と、ダイアログが表示されます。このダイアログは、しばらくすると(5秒)フェードアウトして消えます。ダイアログはクリックしても反応しません(スルーされます)。


本ソフトを終了するには、本アプリケーションを最前面に出して、Command-Qで終了してください。通常、本アプリケーションは起動したままにしておきます。ログイン時に自動実行されるようになっており、初回以外はあえて起動は気にしなくてけっこうです。


アンインストール時など、ログイン時の自動起動項目からの削除は「システム環境設定」の「アカウント」>「起動項目」から手動で行ってください。また、前バージョンをインストールしてある環境においても、同様にシステム環境設定から一度「おかえり」を削除してください。


なんで作っちゃったの?


各種イベントの検出機構を他のアプリケーション用にAppleScriptで作成したので、その動作検証のために単独で切り出してソフトウェア化したものです。


ただ、作ってみたら意外と有用性が高い(ような気がした)ので、単独で機能アップを検討しているものです。


みどころ


AppleScriptだけでシステムの各種イベントを検出しているところ。


もう少しこまめに確認をしてもよいのですが、他のプログラムの実行に影響を与えないよう4秒インタバルで確認を行っています。Mac OS X標準添付のアクティビティモニタでどの程度のCPU負荷があるか確認しています。


各種手法をまぜて使うことで、多角的にスリープ検出を行っています。ゲーム中に他のアプリケーションのイベントを止めるようなものがあった場合でも、おそらく対応できていると思います(もし、ゲーム終了後に誤ってスリープ解除メッセージが出てきたら教えてください)。


本バージョンでは入れていませんが、スリープ解除を検出して、サウンドを鳴らしたりスクリプトを実行したりしてもよいだろうか、と考えています。フリーウェア版ではただメッセージを表示するだけの機能を提供し、シェアウェア版ではスリープ解除時にサウンド再生やスクリプトの実行などを行う機能、またウィンドウのカスタマイズ機能をつけてみようか、などと考えています。


なお透明ウィンドウは、


http://developer.apple.com/samplecode/RoundTransparentWindow/RoundTransparentWindow.html


のCustomWindow.mを使用しています。


なお、アプリケーションパッケージ中のResourcesファイル内にaiffファイルを入れて起動すると、Preferencesでファイルの追加を認識します。ただし、aiffファイルのファイル名については、半角英字+半角数字のみ使用するようにしてください。


一部で「誕生日のメッセージには対応しないのか」という意見があったので、対応をすすめているのですが……インターネット上でみつけた画像素材の使用許諾メールを投げているところです。まだお返事をいただいていないので、同機能はイネーブルにはしていません。


使用制限


本バージョンでは2010年12月31日までの起動制限を設けています。


注意事項


本ソフトの使用によって発生したいかなる損失・損害についても作者は責任を負わないものとします。


本ソフト「おかえり」の著作権はぴよまるソフトウェアが保持します。

(ただし、アイコン用のiMac画像、同梱のサウンドおよび3が日に表示される「謹賀新年」画像については一切著作権を主張しません)


雑誌等での付録CDによる配布は基本的にOKですが、事前にメールにて連絡し、掲載誌等を送付してください。

Copyright By Piyomaru Software. All Rights Reserved