そこで、一度に変更するスクリプトを作った。
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 件のコメント:
コメントを投稿