里々でWeirds.dllを使う方法 Weirds.dll配布元:http://www.boreas.dti.ne.jp/~sdn/nar/#saoribin オーナードローメニューに似たメニューをカスタマイズして表示することのできるSAORIです。 \1を右クリックするとメニューが出るようにしています。\1が存在するシェルで試してください。 一部ssu.dllを使用しています。 私の環境(98SE)で起きた不具合 ・background.imageを指定してメニュー表示させようとするとSAORIエラーダイアログが出る。 ・satori_conf.txtでWeirds.dllを設定すると実際にSAORIを使わなくてもCROWで終了時にランタイムエラーダイアログが出る。(CROWに対応したいなら他の栞使った方がいいかも…) ---------------------------------------------------- ○ 前準備 (1)saoriフォルダにWeirds.dllをいれる (2)satori_conf.txtの@SAORIの下に「weirds,saori/Weirds.dll」の一行を追加 #================================================== #-------------------------------------------------- # hwndとuniqueIDの取得 #-------------------------------------------------- *hwnd $G_hwnd (R0) *uniqueid $U_ID (R0) #-------------------------------------------------- # 起動時に必ずこの二つをWeirds.dllに読み込み #-------------------------------------------------- *起動 (weirds、set_hwnd、(G_hwnd)) (weirds、owner_id、(U_ID)) :起動しました。 #-------------------------------------------------- # \1を右クリックするとメニュー表示へ飛ぶようにする #-------------------------------------------------- *OnMouseClick (weirds、menu_close) >メニュー表示 (R3)==1&&(R5)==1 #-------------------------------------------------- #(sprintf,%c,*)は長すぎて区切り字として使いにくいので短縮しておく # replace.txtで使わなそうな記号に置き換えてもいいと思います #-------------------------------------------------- @b1 (sprintf,%c,1) @b2 (sprintf,%c,2) #-------------------------------------------------- # キーボード操作サポート #-------------------------------------------------- *OnKeyPress (weirds、notify_keypress、(R0)) >(R0)が押された #================================================== #-------------------------------------------------- # Weirds.dllメニュー項目設定について #-------------------------------------------------- # よく使われそうなものだけ載せてます。 # 詳しくは公式解説書を見てください。 #-------------------------------------------------- # weirds、show、のあと一項目ごとに # [フォルダ](b1)[オプション](b1)[ラベル](b1)[タイプ](b2) # を記述して設定。 # (省略可)なものを省略する時も区切り字(ここでは(b1))は書いておく必要があります。 #-------------------------------------------------- # [フォルダ](省略可) # 例えば「リンク」と書くとメニューに「リンク」が表示され、それを選択すると横に出るメニューの中にこの項目が入ります。 # 「リンク\検索」と書くと「リンク」を選択した時にメニューに出る「検索」を選択すると出てきます。 # フォルダに入れない時は省略。 #-------------------------------------------------- # [オプション](省略可) # 「C」は左横にチェックマークを、「S」は★を表示。「D」は選択不可文字にします。 # 「CD」や「SD」のように多重設定する事もできます。 #-------------------------------------------------- # [ラベル] # ここに書いた文字がメニュー項目に表示 #-------------------------------------------------- # [タイプ] # 『Dummy』 ただ文字を表示するだけ #  # 『Separator』 区切り線を表示。ラベルは書く必要なし。 #  # 『Link』 「Link(b1)http://〜」でURLを開く #  # 『Script』 「Script(b1)スクリプト」でスクリプトを実行。 # スクリプトはサクラスクリプトで書きます。\-は使えないそうです。 #  # 『Event』 「Event(b1)イベント名」で「*イベント名」にジャンプ # 「Event(b1)イベント名(b1)0(b1)1」と書くと「*イベント名」に飛んだあと変数(R0)に0、(R1)に1が入ります。(これはいくつでも増やせます) #-------------------------------------------------- #-------------------------------------------------- # メニューを表示 #-------------------------------------------------- *メニュー表示 (weirds、show、 #------------- メニュー項目設定 ------------- (b1)(b1)  - Menu -(b1)Dummy(b2) (b1)(b1)(b1)Separator(b2) (b1)(b1)なんかしゃべって(b1)Event(b1)ランダムトーク(b2) (b1)(b1)いまなんじ?(b1)Script(b1)\0\s[0](現在年)年(現在月)月(現在日)日(現在時)時(現在分)分\w3です。\e(b2) (b1)(b1)(b1)Separator(b2) (b1)(if、○(見切れ反応)==○1、C)(b1)見切れ反応をする(b1)Event(b1)見切れ反応の設定(b2) (b1)(if、○(重なり反応)==○1、C)(b1)重なり反応をする(b1)Event(b1)重なり反応の設定(b2) 喋り間隔設定(b1)(if、(喋り間隔)==30秒、SD)(b1)30秒おき(b1)Event(b1)喋り間隔変更(b1)30秒(b2) 喋り間隔設定(b1)(if、(喋り間隔)==60秒、SD)(b1)60秒おき(b1)Event(b1)喋り間隔変更(b1)60秒(b2) 喋り間隔設定(b1)(if、(喋り間隔)==180秒、SD)(b1)180秒おき(b1)Event(b1)喋り間隔変更(b1)180秒(b2) 喋り間隔設定(b1)(if、(喋り間隔)==600秒、SD)(b1)600秒おき(b1)Event(b1)喋り間隔変更(b1)600秒(b2) 喋り間隔設定(b1)(if、(喋り間隔)==0秒、SD)(b1)しゃべらない(b1)Event(b1)喋り間隔変更(b1)0秒(b2) \(b1)(b1)(b1)Separator(b2) リンク\検索(b1)(b1)Google(b1)Link(b1)http://www.google.co.jp/(b2) リンク\検索(b1)(b1)Yahoo! JAPAN(b1)Link(b1)http://www.yahoo.co.jp/(b2) リンク\伺か\本体(b1)(b1)Materia(b1)Link(b1)http://usada.sakura.vg/(b2) リンク\伺か\本体(b1)(b1)SSP(b1)Link(b1)http://ssp.shillest.net/(b2) リンク\伺か\本体(b1)(b1)CROW(b1)Link(b1)http://crow.aqrs.jp/(b2) リンク\伺か\サーチエンジン(b1)(b1)ゴーストセンター(b1)Link(b1)http://ngc.sherry.jp/(b2) リンク\伺か\サーチエンジン(b1)(b1)GHOST TOWN(b1)Link(b1)http://ghosttown.mikage.jp/(b2) (b1)(b1)(b1)Separator(b2) (b1)(b1)終了(b1)Event(b1)終了する(b2) 、 #------------- メニュースタイル設定 ------------- background.font.color(b1)20,20,20(b2) background.base.color(b1)255,255,255(b2) foreground.font.color(b1)66,89,112(b2) foreground.base.color(b1)221,237,247(b2) menu.disable.font.color(b1)150,150,150(b2) menu.item.fontname(b1)MS UI Gothic(b2) sidebar.base.color(b1)188,211,229(b2) menu.item.width(b1)100(b2) sidebar.width(b1)10(b2) ) #-------------------------------------------------- # メニュー用画像は不安定っぽいので設定しない方が無難かも。 # 相対パス非対応なのでもし設定するならSAORI等を使って画像の絶対パスを取得する必要があります。 #-------------------------------------------------- #================================================== *見切れ反応の設定 >見切れ反応オフに設定 (見切れ反応) $見切れ反応 1 *見切れ反応オフに設定 $見切れ反応 0 #-------------------------------------------------- *重なり反応の設定 >重なり反応オフに設定 (重なり反応) $重なり反応 1 *重なり反応オフに設定 $重なり反応 0 #-------------------------------------------------- *喋り間隔変更 $喋り間隔 (R0) >喋らなくした (R0)==0秒 :喋り間隔を(R0)おきに変更しました。 *喋らなくした :喋らないようにしました。 #-------------------------------------------------- *ランダムトーク () * :ランダムトーク。 *終了 :終了します。 *終了する :終了します。\- #-------------------------------------------------- # Weirds.dllのメニューのEventで↑の「終了する」イベントを呼び出した時 # SSPならちゃんと終了するんですがCROWでは呼び出しすらできませんでした。 # Weirds.dllで「終了」メニュー実行できるのはSSPだけかも。 #--------------------------------------------------