そこで、一度に変更するスクリプトを作った。
PPx Window Moduleが必要。またScript Moduleは最新のものを。
SetDimensions.js
//!*script // 要Window Module // 引数として // C_A 5 5 600 600 ,C_B 5 605 600 600 ,V_A 605 5 600 600 // のように「窓ID 左端の座標 上端の座標 幅 高さ」を,で区切って取得 // それを再現する // 引数がなければ終了 if (PPx.Arguments.Length < 1){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(-1); } var ary; var win_id; for(i = 0; i < PPx.Arguments.Length; i++) { ary = PPx.Arguments.Item(i).split(/\s+/); win_id = ary[0].slice(-1); if (ary[0].slice(0,1)=="C"){ PPx.Execute("%Oi *ppc -r -bootid:"+win_id); PPx.Execute("*windowposition %NC"+win_id+","+ary[1]+","+ary[2]); PPx.Execute("*windowsize %NC"+win_id+","+ary[3]+","+ary[4]); } else { PPx.Execute("%Oi *ppv -bootid:"+win_id); PPx.Execute("*windowposition %NV"+win_id+","+ary[1]+","+ary[2]); PPx.Execute("*windowsize %NV"+win_id+","+ary[3]+","+ary[4]); } }
使い方
*script %0Script\SetDimensions.js,C_A 5 5 600 600 ,C_B 5 605 600 600 ,V_A 605 5 600 600
と、引数に「窓ID 左端の座標 上端の座標 幅 高さ」を与えると、それぞれのIDのPPCあるいはPPVを起動。窓の位置や大きさを変更する。
*script %0Script\SetDimensions.js, %*getcust(S_dimensions:normal)
のように、与える情報をユーザ変数に登録して使うとかするとスマート。
ちなみに以下は、現在開いている窓の情報をこの形式で取得するためのスクリプト。僕は
echo %*script(%0Script\GetDimensions.js)
で情報を吐き出させて使っている。
GetDimensions.js
//!*script // 要Window Module // 実行すると // C_A 5 5 600 600 ,C_B 5 605 600 600 ,V_A 605 5 600 600 // のように「窓ID 左端の座標 上端の座標 幅 高さ」を,で区切った // 返り値を返す var ppclist = PPx.Extract('%*ppxlist(-C)').split( "," ); ppclist.pop(); var ppvlist = PPx.Extract('%*ppxlist(-V)').split( "," ); ppvlist.pop(); var winlist = ppclist.concat(ppvlist); var str = ""; var l,t,w,h; for(i = 0; i < winlist.length; i++) { l = PPx.Extract("%*windowrect(%N"+winlist[i]+",l)"); t = PPx.Extract("%*windowrect(%N"+winlist[i]+",t)"); w = PPx.Extract("%*windowrect(%N"+winlist[i]+",w)"); h = PPx.Extract("%*windowrect(%N"+winlist[i]+",h)"); str = str + winlist[i]+" "+l+" "+t+" "+w+" "+h+" ,"; } PPx.Result = str;
0 件のコメント:
コメントを投稿