コンテンツにスキップ

get_property

Category: 本体との連携

書式

(get_property、プロパティ名)
(get_property、プロパティ名、既定値)

引数

引数 説明
プロパティ名 取得するプロパティの名前
既定値 取得できなかったときの結果(省略時は空文字列)

戻り値

プロパティの値。取得できなかったときは既定値。

解説

ベースウェア(SSP など)に SSTP の EXECUTE で GetProperty コマンドを送り、プロパティの値を取得します。送り先は、NOTIFY hwnd などで得たゴーストのメインウィンドウです。プロパティ名の仕様はベースウェアのドキュメントを参照してください。ローカルのみの関数です(SecurityLevel: local でないリクエストでは実行されません)。

応答コードが 200 のときだけ値を返し、それ以外は既定値になります。応答コードは (SSTP応答コード) で確かめられます。既定値になるのは次の場合です。

  • 存在しないプロパティ(SSP は 204 を返します)。
  • ウィンドウハンドルがまだ分からないとき(起動直後など)や、ベースウェアが応答しなかったとき(応答コード 0)。
  • プロパティ名に改行が含まれているとき(応答コード 0。送りません)。

(S0)… は書き換えません。任意のコマンドを送るときや、複数行の結果を受け取るときは execute_sstp を使います。

Mc204-1 での変更:

  • ウィンドウハンドルが分かる前に呼ぶと、以後 FMO からウィンドウハンドルを取り直さなくなり、(ウィンドウハンドル0) が 0 のままになっていました。
  • 応答の 2 行目を値としていたため、ヘッダの付いた応答では値を取り違えていました。ヘッダを読み飛ばして追加データを読みます。
  • プロパティ名に改行を含めると、要求のヘッダを書き足せてしまいました。
  • 応答を無期限に待っていました。ベースウェアが応答できない状態だと、そのまま止まってしまいます。5 秒で打ち切ります。

使用例

現在のゴーストは(get_property、currentghost.name、不明)です。

関連項目