Process number
Process number ( name {; *} ) -> 戻り値
引数 | 型 | 説明 | |
---|---|---|---|
name | 文字 | 🡒 | プロセス番号を取り出すプロセス名 |
* | 🡒 | 4D Serverのプロセス番号を返す | |
戻り値 | 倍長整数 | 🡐 | プロセス番号 |
説明
Process numberは、name引数に指定した名前を持つプロセス番号を返します。プロセスが見つからない場合には、Process numberは0を返します。
オプションの引数 * を指定すると、サーバ上で実行されたプロセス(ストアドプロシージャ)のプロセスIDを4D Clientで取得することができます。この場合、負の値が返されます。GET PROCESS VARIABLEやSET PROCESS VARIABLEコマンドを使用する際には、このオプションが特に役立ちます。詳細はそれぞれのコマンドの説明を参照してください。
サーバマシン上のプロセスから引数 * を指定してこのコマンドを実行すると、正の値が返されます。
例題
独立したプロセスで実行するカスタムフローティングウインドウを作成します。このプロセスでは、デザインモードでやり取りができる独自のツールを実装します。例えば、キーワードの階層リストで項目を選択すると、デザインモードの最前面ウインドウにテキストを貼り付けるようなツール。これを実行するにはペーストボードを使用できますが、貼り付けイベントはデザインプロセスの内部で発生する必要があります。以下の関数は、デザインプロセス(が実行している場合)のプロセス番号を返します:
// Design process number プロジェクトメソッド
// Design process number -> 倍長整数
// Design process number -> デザインプロセス番号
$0:=Process number("デザインプロセス")
// Note: プロセス名が変更されると、このコードは利用できなくなります
この関数を使用して、下記のプロジェクトメソッドは、引数として受け取ったテキストをデザインモードの最前面のウインドウに貼り付けます(適用可能な場合):
// PASTE TEXT TO DESIGN プロジェクトメソッド
// PASTE TEXT TO DESIGN ( テキスト)
// PASTE TEXT TO DESIGN ( デザインモードの最 前面ウィンドウに張り付けるテキスト)
var $1 : Text
var $vlDesignPID;$vlCount : Integer
$vlDesignPID:=Design process number
If($vlDesignPID #0)
// ペーストボードにテキストを置く
SET TEXT TO PASTEBOARD($1)
// Ctrl-V / Cmd-V イベントをポスト
POST KEY(Character code("v");Command key mask;$vlDesignPID)
// DELAY PROCESSを繰り返し呼び出して、スケジューラに
// デザインプロセスへのイベントを渡すチャンスを与える
For($vlCount;1;5)
DELAY PROCESS(Current process;1)
End for
End if
参照
GET PROCESS VARIABLE
PROCESS PROPERTIES
Process state
SET PROCESS VARIABLE