SAORI¶
saoriregist¶
書式¶
$(saoriregist DLLファイル エイリアス [ オプション ] )
戻り値¶
なし
解説¶
SAORIモジュールの登録。DLLファイルには、相対パスまたは絶対パスでDLLを指定する。エイリアスは、callsaoriコマンドでSAORIモジュールを呼ぶ際のキーワードを指定する。
オプションには、SAORIモジュールをロードするタイミングを指定する。SAORIの中にはロードに時間のかかるものや、呼ばれない可能性があることも考えられるため、このような調整が可能となっている。タイミングには"preload", "loadoncall", "noresident"の3種類があり、それぞれ、「saoriregist時にロード」「最初にcallsaori(x)された時にロード」「callsaori時にロードし、終わったら即アンロード」を意味する。デフォルトはloadoncallである。
Phase 9.0.0以降、SAORIモジュールがloadu(UTF-8のパスを受け取るload)をエクスポートしていれば、UTF-8のパスでloaduを呼ぶ。なければ従来どおりシステムのコードページ(ACP)のパスでloadを呼ぶ。
使用例¶
=kis
# saori_cpuid.dllをcpuidとして登録。今すぐロード。
saoriregist modules\saori_cpuid.dll cpuid preload
=end
saorierase¶
書式¶
$(saorierase エイリアス)
戻り値¶
なし
解説¶
登録済みのSAORIを登録から抹消する。ロードされていたら併せてアンロードされる。
使用例¶
=kis
# cpuidをアンロード
saorierase cpuid;
=end
saorilist¶
書式¶
$(saorilist エントリ1)
戻り値¶
なし
解説¶
登録済みのSAORIのエイリアスを、すべてエントリ1に格納する。オプションの種類によらず、登録しているエイリアスを全て返すことに注意。
使用例¶
=kis
# System.SaoriListエントリに登録済SAORIエイリアスの一覧を格納
saorilist System.SaoriList;
=end
callsaori¶
書式¶
callsaori エイリアス [ 引数 引数 ... ]
戻り値¶
SAORIの戻り値(Result)
解説¶
戻り値が一つのSAORIを呼び出す。
Phase 9.0.0以降、リクエストの文字コードはUTF-8から始める。ロード直後のGET Versionの応答にCharsetがあれば、以後その文字コードで送り、なければ以後Shift_JISで送る(古いSAORI互換)。応答はそのCharsetに従って解釈し、Charsetがなければ、Shift_JISで送った場合はShift_JIS、そうでなければ自動判定する。応答に有効なCharsetがあれば、次回からその文字コードで送る。
SAORI over DirectSSTP (Phase 9.0.0 β2以降、Windows (SSP 2.9.13以降)とninixのみ):本体に内蔵されたモジュール(internal_crypto、internal_data、internal_randomなど)を、DLLなしのSAORIとして呼べる。SAORI/1.0の要求をDLLではなく本体へDirect SSTPで送る。
- エイリアスの登録は、
saoriregistに、実体のないDLLの名前をinternal_で始まる名前で指定する(フォルダは問わない)。本体が互換機能を内蔵するSAORI(houchi、clipcopy、textcopy、saori_ip、saori_cpuid、mciaudio、cpuusage、httpc、string、hanayu)も、DLLが無ければ本体の機能を呼ぶ。DLLの実体があるときは、これまでどおりDLLとして読む。 - 登録しなくても、
internal_で始まるモジュール名をそのままエイリアスにして呼べる。初めて呼ぶとき、本体のinternal_systemのListModulesで内蔵モジュールの一覧を確かめ、一覧にあれば自動で登録する。 - 1つ目の引数が関数名、2つ目以降がその関数の引数と
--オプション=値。詳細はSAORI over DirectSSTPを参照。 - 本体のウィンドウは、本体からのNOTIFY
hwndで知る。それより前は呼べない。 - 常にUTF-8で送る。引数に改行は書けない(送らずに失敗)。空の引数も位置として数える。
- Direct SSTPは常にLocalとして扱われるため、SecurityLevelがlocal以外のリクエストの処理からは呼ばない。
- 本体の応答を最大30秒待つ。時間のかかる処理は、モジュール側の
--async=識別子で非同期にする。
使用例¶
sentence : \0\s[0]ここのOSは$(callsaori cpuid os.name)ね。\e
# 登録なしで、本体のモジュールを呼ぶ
sentence : $(callsaori internal_crypto Digest sha256 abc)
callsaorix¶
書式¶
callsaorix エイリアス 戻り値格納エントリ [ 引数 引数 ... ]
戻り値¶
SAORI呼び出し結果(Result)
解説¶
複数の戻り値を持つSAORIを呼び出し、結果を得る。SAORIの戻り値はValue[数値]ヘッダに格納されているが、これを、「指定エントリ.Value[数値]」エントリに格納する。また、「指定エントリ.size」に、得られた戻り値(Value)の数を返す。
使用例¶
# tmizu氏作のwmove.dllを使い、キャラクタの立ち位置を取得する
=kis
fuction getposition $(
# 引数1 : 0=Sakura、1=Kero
# 引数2 : 戻り値返却用エントリ名
if $[ $@arg[1] == 0 ] $(
setstr @characterHWnd $System.HWnd.shell[0];
) else if $[ $@arg[1] == 1 ] $(
setstr @characterHWnd $System.HWnd.shell[1];
) else $(
return "";
);
callsaorix wmove $@arg[2] GET_POSITION ${@characterHWnd};
);
=end