現在窓の位置を複数記憶し、再現できるようにする。
以前の記事では同じことをエイリアスを使用して行ったが、今回はユーザーデータを使用する。
Script
以前のSetDimensions.jsとほぼ同じだが、区切り文字を「,」から「;」に変更している。
SetDimensions2.js
//!*script // 窓の位置と大きさを変更する // 第一引数:"x;y;width;height" // PPXMES.DLLとPPXWIN.DLLが必要 // 引数がなければ終了 if (PPx.Arguments.Length < 1){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(-1); } var hoge = PPx.Arguments.Item(0).split( ";" ); // 実行元が一体型PPcかそれ以外かで分岐 if (PPx.GetComboItemCount != 0&&PPx.Extract('%n').substr(0,1)=="C"){ PPx.Execute("*windowposition %*findwindowclass\(\"PaperPlaneCombo\"\)"+","+hoge[0]+","+hoge[1]); // 位置の変更 PPx.Execute("*windowsize %*findwindowclass\(\"PaperPlaneCombo\"\)"+","+hoge[2]+","+hoge[3]); // 大きさの変更 } else { PPx.Execute("*windowposition %N"+","+hoge[0]+","+hoge[1]); // 位置の変更 PPx.Execute("*windowsize %N"+","+hoge[2]+","+hoge[3]); // 大きさの変更 }
窓の位置を登録
*script %0\Script\setSeqUserData.js,ppvpos,%*windowrect(,l);%*windowrect(,t);%*windowrect(,w);%*windowrect(,h)
これを実行するたび、ppvpos0 ppvpos1 ppopos2…に現在窓の位置と大きさ(x;y;width;height)を登録する。
窓の位置を変更
*script %0\Script\SetDimensions2.js,%*script(%0\Script\getSeqUserData.js,ppvpos)
getSeqUserData.jsを実行するたび、順次ppvpos0 ppvpos1 ppopos2…の中身を返すので、その値を使いSetDimentions2.jsで窓の位置と大きさを変更する。
登録例
僕はPPVに2ストロークキーで登録。
- C_s,s 登録
- C_s,C_s 実行
- C_s,e エディタで編集
-|K_SetPPvDimensions = KV_main = { ; PPvメイン窓 ^S ,*setnextkey K_SetPPvDimensions } K_SetPPvDimensions = { ** comment ** S , *script %0\Script\setSeqUserData.js,ppvpos,%*windowrect(,l);%*windowrect(,t);%*windowrect(,w);%*windowrect(,h) ^S ,*script %0\Script\SetDimensions2.js,%*script(%0\Script\getSeqUserData.js,ppvpos) E , *ppb -c *string o,name=%%*script(%%0\Script\SeqUserData2file.js,ppvpos) %%: %%Obsq xyzzy %%so"name" %%: *script %%0\Script\file2SeqUserData.js,ppvpos,%%so"name" }
0 件のコメント:
コメントを投稿