* U K I Y A H O N P O * Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura, che la diritta via era smarrita. |
Osuwari.dll version 2 取り扱い説明書 version2.1.0.01.これは何をするものかこれはSAORI規格のDLLです。ゴーストの位置を様々なロジックに従い、特定のウィンドウの矩形と同期させる機能を持ちます。ゴーストをウィンドウに「座らせる」「貼り付ける」「ぶら下げる」といった事を目的として作成されました。 Osuwari.dllはversion1が過去に公開されており、これは機能強化したversion2となります。 尚、本DLLはmateriaでは動作しません。SSPもしくはCROWで利用してください。 2.利用法概要ゴーストの位置の制御を開始する、あるいは制御パラメータを変更するには、START構文を用います。START構文はゴーストの存在する間、何度呼んでも構いません。 一般的には、HWNDイベントの際に呼ぶことを推奨します。一度呼べばその際の制御パラメータに従い、DLLがアンロードされるかSTOP構文が呼ばれるまで位置の制御を行うため、呼び出し続ける必要はありません。 お座りを停止させる場合にはSTOP構文を用いてください。一般的にはゴーストの終了と共にDLLがアンロードされるため、STOP構文を利用しなくても問題ないでしょう。 このDLLはオプションが多彩なため構文が少々複雑です。単純に利用する場合は「5.記載例」を先に見てください。 陥りやすい罠
3.START構文(1)構文START構文は以下のパラメータを記載してください。
(2)位置指定について位置の指定、原点、差分について、下図を参考にしてください。 (3)位置取得失敗時・位置固定時の動作について以下の場合にはデスクトップかワークエリアを追尾対象とし、Argument8の記載が有効になります。
その際に「代用として」計算される位置と、位置取得失敗時指定の関係については下図を参考にしてください。 なお、デスクトップとは画面全体のこと、ワークエリアとは画面からタスクバー領域を除いたものだと思って大体間違いありません。 4.STOP構文STOP構文を用いると、DLLの動作を停止できます。以下のパラメータを記載してください。
Argument1以降は記載しても無視されます。 5.記載例(1)HWND取得の記載例本DLLを利用するためには、位置制御対象のHWNDを知る必要があります。一般的には\0もしくは\1のHWNDを指定することになると思います。\0、\1のHWNDは本体からHWNDイベントで通知されます。 以下に里々でのHWND取得コード例を記載します。このコードによりsakurahwnd変数に\0のHWNDが入ります。 *hwnd $temp (split,(R0),(sprintf,%c,1)) $sakurahwnd (S0) (2)「お座り」ゴーストをウインドウの右上に「お座り」させるための構文例を記載します。 Argument2:ACTIVE(アクティブウィンドウに「お座り」させる) Argument3:TR(ウィンドウの右上を原点とする) Argument4:-20(ウィンドウの右上から20ピクセル左に寄った場所を初期位置とする) Argument5:-90(ゴーストの「座高」が90ピクセルの場合) Argument6:100(100[ms]毎に更新) Argument7:XMOVE(横方向に移動可能、見切れあり) Argument8:BOTTOM WORKAREA(「お座り」失敗時にはワークエリアの下端に座る) ※Argument2をFIXとすると、つねにワークエリア下端に「お座り」します。 (3)「ぶら下がり」ゴーストをウインドウの左下に「ぶら下がり」させるための構文例を記載します。 Argument2:ACTIVE(アクティブウィンドウに「ぶら下がり」させる) Argument3:BL(ウィンドウの左下を原点とする) Argument4:30(ウィンドウの左下から30ピクセル右に寄った場所を初期位置とする) Argument5:160(ゴーストの「手から下の高さ」が160ピクセルの場合) Argument6:100(100[ms]毎に更新) Argument7:(移動できない、見切れあり) Argument8:TOP WORKAREA(「ぶら下がり」失敗時にはワークエリアの上端にぶら下がる) ※Argument2をFIXとすると、つねにワークエリア上端に「ぶら下がり」ます。 (4)総合例以下に、里々でゴーストを「お座り」させる例を記載します。 【コア部分】 @お座り (osuwari,(A0),(A1),(A2),TR,-50,-97,100,XMOVE,BOTTOM WORKAREA) *hwnd $temp (split,(R0),(sprintf,%c,1)) $sakurahwnd (S0) >お座り実行 *お座り実行 (call,お座り,STOP,0,0) >タスクバーモード (お座りモード)==1 >座らないモード (お座りモード)==2 (call,お座り,START,(sakurahwnd),ACTIVE) *タスクバーモード (call,お座り,START,(sakurahwnd),FIX) *座らないモード #なにもしない 【メニュー部分:メニューから各*が呼ばれるものとします】 *ウインドウにも座って良いよ :\u\s[10]\h\s[6]はい…\w5…\w5分かりました…\w5…\w5 $お座りモード 0 >お座り実行 *タスクバーにだけ座ってて :\u\s[10]\h\s[6]はい…\w5…\w5分かりました…\w5…\w5 $お座りモード 1 >お座り実行 *どこに座ってもいいよ :\u\s[10]\h\s[6]はい…\w5…\w5分かりました…\w5…\w5 $お座りモード 2 >お座り実行 【rキー等で里々のリロードを行う場合はその対応が必要になります】 *OnSatoriLoad >辞書リロード後お座り (辞書リロードずみ)==1 *辞書リロード後お座り $辞書リロードずみ 0 >お座り実行 *OnKeyPress >(R0)が押された *rが押された $辞書リロードずみ 1 $辞書リロード 実行 :(5)リロード…\w5…\w5します…\w5…\w5 6.注意事項・制限事項
7.謝辞開発にあたってはえびさわ様のgethwnd.dllソースを大いに参考にさせて頂き、また勝手ながらだいぶ流用させて頂いております。お礼申し上げます。 osuwari.dllの動作確認その他について、黒羽龍矢様及びTJ様にご協力頂いております。お礼申し上げます。 里々のコード例の元については殊海夕音様にご協力頂いております。お礼申し上げます。 Chameleon Ponapalt様には作成に当たって様々な助言を頂きました。お礼申し上げます。 |