2009年11月27日金曜日

PrefPaneから常駐プログラムの制御(1)

環境設定パネルから常駐プログラムを制御する時の覚え書き。


PFKeyAvailerPrefは、ファンクションキーにアプリケーションや書類を登録して、キー一発で起動できるようにするシステム環境設定パネルです。


PFKeyAvailerPrefから常駐プログラムのPFKeyAvailerXdを起動して、PFKeyAvailerXdがホットキーの処理を行う構成のため、システム環境設定パネルからの常駐プログラムの起動・終了制御と、設定情報の受け渡しが必要になります。

PKeyAvailerPrefを作成した時の実現方法を覚え書きとして記載します。

アプリの構成は以下のとおりです。

 ・PFKeyAvailerPref.prefPane(システム環境設定パネル)

   ファンクションキーに登録するインタフェースを担当。

   リソースにPFKeyAvailerXdを含み、その起動・終了を制御。

 ・PFKeyAvailerXd.app(常駐するプログラム)

   ホットキー(ファンクションキー)の処理を担当。



動作概要は以下のとおりです。


1 起動からホットキー処理までの流れ

  1. ユーザーが、システム環境設定上でPFKeyAvailerPrefを起動する。
  2. ユーザーが、「ファンクションキーを有効にする」のチェックボックスをチェックする。
  3. PFKeyAvailerPrefが、PFKeyAvailerXdを起動する。
  4. PFKeyAvailerPrefが、ユーザーの起動項目にPFKeyAvailerXdを登録する。
  5. 起動されたPFKeyAvailerXdは、初期設定ファイルを読み込む。
  6. PFKeyAvailerXdは、内容に従ってホットキー(ファンクションキー)をシステムに登録する。
  7. ユーザーが、ホットキー(ファンクションキー)を押すとシステムからPFKeyAvailerXdに通知され、PFKeyAvailerXdが対応するアプリケーションや書類を起動する。


2 初期設定の変更時の流れ

  1. ユーザーが、システム環境設定上でPFKeyAvailerPref起動する。
  2. ユーザーが、ファンクションキーにアプリケーションや書類を登録する。
  3. PFKeyAvailerPrefが、登録されたアプリケーションや書類を初期設定ファイルに書き込む。
  4. PFKeyAvailerPrefが、PFKeyAvailerXdに初期設定ファイルが変更されたことを通知する。
  5. 通知を受け取ったPFKeyAvailerXdが、初期設定ファイルを読み直しホットキーの登録を変更する。


3 終了時の流れ

その1(PFKeyAvailerXdの停止)

  1. ユーザーが、システム環境設定上でPFKeyAvailerPref起動する。
  2. ユーザーが、「ファンクションキーを有効にする」のチェックボックスのチェックを外す。
  3. PFKeyAvailerPrefが、PFKeyAvailerXdを終了させる。
  4. PFKeyAvailerPrefが、ユーザーの起動項目のPFKeyAvailerXdを削除する。

その2(PFKeyAvailerPrefの削除)

  1. ユーザーが、システム環境設定からPFKeyAvailerPrefを削除する。
  2. PFKeyAvailerXdが常駐していなければ終わり。
  3. PFKeyAvailerXdが常駐している場合は、PFKeyAvailerXdがシステム環境設定からPFKeyAvailerPrefが削除されたことを感知して、ユーザーの起動項目からPFKeyAvailerXdを削除する。
  4. PFKeyAvailerXd、自身を終了させる。


PFKeyAvailerPrefでは、常駐プログラムが先に終了することがないので以上の制御でOK。


Peelsのように、常駐プログラムが自身で勝手に終了することがある場合は、常駐プログラムが終了したことを環境設定パネルに通知する仕組みも必要になります。


0 件のコメント:

コメントを投稿