_User *setcust _User:name=param , %*getcust(_User:name)
・PPxの設定項目として用意されています。
・PPx内で共通です。(PPc/PPv/PPtray等の何処からでも参照・変更できます。)
・プロセスが終了しても内容は失われません。
PPx間で内容を受け渡ししたいときや、長期に渡り設定を記憶する必要があるときに適しています。
_User:hoge0 _User:hoge1 _User:hoge2 _User:hoge3...というような、連番付き変数に登録する仕組みと、呼び出す仕組みとを作ってみる。
登録
*script %0\Script\setSeqUserData.js,hoge,%FCD
とすれば、_User:hoge0 _User:hoge1 _User:hoge2...にカレントファイルのパスを登録する。
setSeqUserData.js
//!*script // 第一引数 : ユーザデータ(hoge1 hoge2 hoge3...のhoge) // 第二引数 : 登録したいデータ(%FCDなど) // *script %0\Script\setSeqUserData.js,hoge,%FCD のようにして使う。 // この例だと、_User:hoge0 _User:hoge1 _User:hoge2...に順番にカレントファイルを登録する // 引数がなければ終了 if (PPx.Arguments.Length < 2){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(); } var cmd = PPx.Arguments.Item(0); var macro = PPx.Arguments.Item(1); // 既に登録されていたら登録しない for (var i = 0; i < 5; i++) { if (PPx.Extract("%*getcust\(_User:"+cmd+i+"\)") == PPx.Extract(macro)){ PPx.SetPopLineMessage("既に登録されてます"); PPx.Quit(); } } // _User:に登録 for (var i = 0; i < 5; i++) { if (!PPx.Extract("%*getcust\(_User:"+cmd+i+"\)")){ PPx.Execute("*setcust _User:"+cmd+i+" = "+macro); PPx.SetPopLineMessage(cmd+i+"に登録しました"); break; } }
呼び出し
%*script(%0\Script\getSeqUserData.js,hoge)
とすれば、_User:hoge0 _User:hoge1 _User:hoge2...の中身を順次取得する。
getSeqUserData.js
//!*script // 第一引数: ユーザーデータ(hoge0 hoge1 hoge2...のhoge) // 実行すると、hoge0 hoge1 hoge2 hoge3...の値を返す // %*script(%0\Script\getSeqUserData.js,hoge)のようにして使う // 引数がなければ終了 if (PPx.Arguments.Length < 1){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(-1); } var cmd = PPx.Arguments.Item(0); // cmd0があるかどうかをチェック if (!PPx.Extract("%*getcust\(_User:"+cmd+0+"\)")){ PPx.SetPopLineMessage("コマンドが空です"); PPx.Quit(-1); } // cmd_idに1を足す。なければ0を入力 if (!PPx.Extract("%*getcust\(_User:"+cmd+"_id\)")){ PPx.Execute("*setcust _User:"+cmd+"_id = 0"); }else { var i = parseInt(PPx.Extract("%*getcust\(_User:"+cmd+"_id\)")) + 1; PPx.Execute("*setcust _User:"+cmd+"_id = "+ i); } var i2 = PPx.Extract("%*getcust\(_User:"+cmd+"_id\)"); // commandを実行 if (PPx.Extract("%*getcust\(_User:"+cmd+i2+"\)")){ PPx.Result = PPx.Extract("%*getcust\(_User:"+cmd+i2+"\)"); }else{ PPx.Execute("*setcust _User:"+cmd+"_id = 0"); PPx.Result = PPx.Extract("%*getcust\(_User:"+cmd+0+"\)"); }
参考:ブックマークのローテート - ppxmemo
0 件のコメント:
コメントを投稿