HSP3 サンプル スクリプト 「名なしパイプと独自メッセージによるプロセス間通信(エディタと外部プログラムの連携)」
このサンプルは、名なしパイプと独自のウィンドウメッセージを利用し、2つのアプリケーション間でテキストデータのやりとりを行う機能を記述したスクリプトです。動作確認はHSP3.1 beta3 / WinXP Pro SP2で行っています。
サンプルの"editor.hsp"と"tool.hsp"は、それぞれランチャー機能付きのテキストエディタと、エディタから起動されてエディタとプロセス間通信をしながら小さな仕事を行うユーティリティを模して書かれています(サンプルなので構造はごくシンプルです)。ちょうどテキストエディタのTeraPadとTeraPadツールのような関係です。(このサンプルはTeraPadの仕組みを調べて書いたわけではありません)
2つのソフトが行う処理の流れは以下のようになります。
editor.exe起動(editor.hspを読み込みmesboxに表示。tool.exe起動用のbuttonを表示)(ユーザが操作)
↓
mesbox内のテキストの一部または全体を選択(ユーザが操作)
↓
editor.exeのウィンドウ上のボタンをクリックしてtool.exeを起動(ユーザが操作)
↓
tool.exeがeditor.exeのウィンドウを検知したあと、editor.exeに対して
mesbox内の選択テキストを送信するように要求する
↓
editor.exeがtool.exeにデータを送る
↓
tool.exeが受け取ったテキストを加工する
↓
tool.exeがeditor.exeに対してデータを受け取る処理に入るように要求する
↓
tool.exeが加工済みのテキストをeditor.exeに送り返す
↓
editor.exeが受け取ったテキストをmesbox内の選択テキストと置き換える
↓
終了
"tool.exe"は"editor.exe"から起動され自分の仕事を完了すると自動的に終了します……
続きはサイドバーリンクの「プログラミング工房」で。
| 固定リンク

コメント