シナリオ 7. キーボードの拡張
このシナリオでは、拡張アプリケーション・プログラムを作成するためにフィルターを使用します。拡張アプリケーション・プログラムとは、キーボードから入力したデータをモニターし、 ある特定の方法でそのデータを変更するプログラムです。通常、この種のアプリケーション・プログラムはキーボード・マクロと呼ばれる命令を使用します。この命令は、どのキー・ストロークを探し、どんな変更を加えるかをアプリケーション・プログラムに伝えます。この変更には、キー・ストロークを抑制すること (これによって、宛先 アプリケーションではキー・ストロークが送信されなかったように見える)、ある キー・ストロークを別のキー・ストロークに置き換えること、あるいは単一の キー・ストロークを一連のキー・ストロークに置き換えることが含まれます。
EHLLAPI を使用してこの処理を行うために、次のシナリオを作成することが できます。
- EHLLAPI アプリケーション・プログラムで Connect Presentation Space (1) 関数を呼び出し、そのキー・ストロークを、フィルターにかける表示スペースに接続する。
- EHLLAPI プログラムは、次に L オプションを指定して Start Keystroke Intercept (50) 関数を呼び出す。これによって、すべてのキー・ストロークが、フィルター操作を行う アプリケーション・プログラムにルーティングされる。
- フィルター操作を行うアプリケーション・プログラムで、 以下のことを行うループを定義できる。
- Get Key (51) 関数が、宛先表示スペースへ送信中のキー・ストロークのすべてを代行受信する。
- フィルター操作を行うアプリケーションはそれぞれのキー・ストロークを調べ、 次のようなキーボード・マクロのタスクを実行する。
- プログラム・コマンドの省略化。この結果、3 つまたは 4 つの キー・ストローク・コマンドを 1 つのキー・ストロークに凝縮することができる。
- コマンドのカスタマイズ。この結果、コマンドが覚えやすくなり、また他の ソフトウェア・パッケージとの一貫性を保つことができる。
- 契約書または頻繁に使用される書面の定形文面の作成。
- 異なる関数に同じキーを使用する同時実行アプリケーションのための キーボードの再編成。
- キー・ストロークが受け入れられない場合、EHLLAPI プログラムは Post Intercept Status (52) 関数を使用してビープ音を鳴らす。
- EHLLAPI プログラムがフィルター・ループを出た後で、Stop Keystroke Intercept (53) 関数を呼び出してフィルター処理を終了する。