シナリオ 7. キーボードの拡張

このシナリオでは、拡張アプリケーション・プログラムを作成するためにフィルターを使用します。拡張アプリケーション・プログラムとは、キーボードから入力したデータをモニターし、 ある特定の方法でそのデータを変更するプログラムです。通常、この種のアプリケーション・プログラムはキーボード・マクロと呼ばれる命令を使用します。この命令は、どのキー・ストロークを探し、どんな変更を加えるかをアプリケーション・プログラムに伝えます。この変更には、キー・ストロークを抑制すること (これによって、宛先 アプリケーションではキー・ストロークが送信されなかったように見える)、ある キー・ストロークを別のキー・ストロークに置き換えること、あるいは単一の キー・ストロークを一連のキー・ストロークに置き換えることが含まれます。

EHLLAPI を使用してこの処理を行うために、次のシナリオを作成することが できます。
  1. EHLLAPI アプリケーション・プログラムで Connect Presentation Space (1) 関数を呼び出し、そのキー・ストロークを、フィルターにかける表示スペースに接続する。
  2. EHLLAPI プログラムは、次に L オプションを指定して Start Keystroke Intercept (50) 関数を呼び出す。これによって、すべてのキー・ストロークが、フィルター操作を行う アプリケーション・プログラムにルーティングされる。
  3. フィルター操作を行うアプリケーション・プログラムで、 以下のことを行うループを定義できる。
    1. Get Key (51) 関数が、宛先表示スペースへ送信中のキー・ストロークのすべてを代行受信する。
    2. フィルター操作を行うアプリケーションはそれぞれのキー・ストロークを調べ、 次のようなキーボード・マクロのタスクを実行する。
      • プログラム・コマンドの省略化。この結果、3 つまたは 4 つの キー・ストローク・コマンドを 1 つのキー・ストロークに凝縮することができる。
      • コマンドのカスタマイズ。この結果、コマンドが覚えやすくなり、また他の ソフトウェア・パッケージとの一貫性を保つことができる。
      • 契約書または頻繁に使用される書面の定形文面の作成。
      • 異なる関数に同じキーを使用する同時実行アプリケーションのための キーボードの再編成。
      例えば、フィルター操作を行うアプリケーションは、Alt+Y のようなキーの組み合わせを、カーソルを表示スペースの 2 行目の 35 桁に移動し、「テキサス州ダラス XYZ Tool Corporation」というストリングを書き込むコマンドに変換することができます。
    3. キー・ストロークが受け入れられない場合、EHLLAPI プログラムは Post Intercept Status (52) 関数を使用してビープ音を鳴らす。
  4. EHLLAPI プログラムがフィルター・ループを出た後で、Stop Keystroke Intercept (53) 関数を呼び出してフィルター処理を終了する。