API 一覧 SAKURA API/1.0 SAKURA API/1.1 SAKURA API/1.2 SAKURA API/1.3 SAKURA API/1.4 SAKURA API/1.5 |
概要 WM_SAKURAAPI を embryo に送信することにより、任意の外部プロセスが embryo をコントロールしたり、プロセス内部の情報をローコストかつ確実に取得することができます。 WM_SAKURAAPI は RegisterWindowMessage API に Sakura という文字列を渡すことで定義されます。 WM_SAKURAAPI = RegisterWindowMessage("Sakura"); SAKURA API が使用するウインドウメッセージは WM_SAKURAAPI のみで、具体的なコマンドは wparam および lparam で渡されます。 wparam 0-127 はカテゴリ EXECUTE です。embryo は指示されたコマンドを実行します。 wparam 128-255 はカテゴリ GET です。embryo は要求されたデータをクライアントに返信します。 wparam 256-384 はカテゴリ NOTIFY です。embryo はイベントを受け取ります。 |
API 一覧
|
SAKURA API/1.0 ポップアップメニューの再構築。起動中にファイル構成やディレクトリ構成が変化しても embryo のメニューツリーはそれを即座に反映しないが、このコマンドを送ることでリロードを指示できる。 FMO のリライト。 NOTIFY otherghostname の実行。 |
SAKURA API/1.1 現在表示されている sakura 側サーフィスの頭部、顔部、胸部当たり判定領域を rect 座標値で返す。
現在表示されている sakura 側サーフィスの中心 x 座標および y 座標を座標値で返す。
現在表示されている kero 側サーフィスの頭部、顔部、胸部当たり判定領域を rect 座標値で返す。lparam の仕様は 128 と同じ。 現在表示されている kero 側サーフィスの中心 x 座標および y 座標を座標値で返す。
ゴーストの現在のステートを返す。戻り値は以下のような意味を持つ。
|
SAKURA API/1.2 SAKURA API/1.2 は絶対きのこ領域(AKF)を取得するためのリクエストです。 現在表示されている sakura 側サーフィスの絶対きのこ領域中心座標の x 座標および y 座標を座標値で返す。
現在表示されている kero 側サーフィスの絶対きのこ領域中心座標の x 座標および y 座標を座標値で返す。lparam の仕様は 132 と同じ。 |
SAKURA API/1.3 SAKURA API/1.3 は Sakura へのイベント通知を実現するためのリクエストです。 Sakura プロセスのプロセスIDを返します。 Sakura プロセス空間内に恒常的に存在する 8192 バイトの静的メモリを指すポインタを返します。ポインタは9スロット存在(8192x9)し、lparam の値で個々のスロットのポインタ値を取得できます。 外部プロセスは以上2つの情報を用いて Sakura にイベントを通知します。具体的には、イベントを通知したいプロセスはまず SA_GETPROCESSID で processid を取得し、それを openprocess し、SA_GETSHAREDMEMORY で得られたポインタに対して writeprocessmemory で必要な情報を書き込み、その後以下で定義されるイベントメッセージを Sakura に対して投げます。イベントを受信した Sakura はイベントそのものを認識すると共に SHAREDMEMORY の各スロットから情報を取り出し、適切な動作(主に SHIORI へのイベント通知)を行います。 -1 のスロットは多くの場合特殊な意味を持ちます。例えば SAKURA API/1.3 を SHIORI/2.2 へのイベント通知として使用する場合、スロット 0〜7 はそれぞれ Reference0〜7 に対応し、スロット -1 はイベント識別子として使用されます。 イベント発生を Sakura に通知します。このメッセージはイベントが発生したという以外何の情報も持ちません。送信者はこのメッセージを送る前に必ず SHAREDMEMORY に適切な値をセットしておかなくてはなりません。 |
SAKURA API/1.4 最小化を行う。既に最小化状態だった場合は復元する。 |
SAKURA API/1.5 現ゴーストの SHIORI をロードし直す。 |
戻る |