2015年1月7日水曜日

現在窓の位置を複数記憶

あいさつ


つかさです。
今回は現在窓の位置の記憶です。デフォルトだと、

  • &\[HOME] 現在の窓の位置を記憶する
  • &[HOME] &\[HOME]で記憶した位置に窓を移動する

と一つだけ記憶できますが、これを複数記憶できるようにします。

準備


必要なのは
  • setalias.js
  • resetalias.js
  • RotateExecute3.js
  • SetDimensions.js

の4つ。これらをScriptフォルダに保存します。上の3つを持ってない場合は、


に置いてあるので、どちらかに行って保存しましょう。

今回新しく作ったのは、SetDimensions.jsです。

SetDimensions.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]); // 大きさの変更
}

引数として、4つの数字をカンマで区切って引用符でくくったもの"x,y,width,height"を受け取り、現在窓の位置と大きさを、それにあわせて変更するスクリプトです。例えば
*script %0\Script\SetDimensions.js,"200,300,400,500"

とすると、位置が(200,300)で幅が400、高さ500になります。

ついで以下を編集して取込。
-|K_SetPPcDimentions =
-|K_SetPPvDimentions =

KC_main = { ; PPcメイン窓
^W ,*setnextkey K_SetPPcDimentions
}
KV_main = { ; PPvメイン窓
^W ,*setnextkey K_SetPPvDimentions
}

K_SetPPcDimentions = { ** comment **
W , *script %0\Script\setalias.js,ppcpos,"%*windowrect(,l),%*windowrect(,t),%*windowrect(,w),%*windowrect(,h)"
R , *script %0\Script\resetalias.js,ppcpos
^W ,*script %0\Script\SetDimensions.js,"%*script("%0\Script\rotateExecute3.js","cposi","ppcpos")"
}
K_SetPPvDimentions = { ** comment **
W , *script %0\Script\setalias.js,ppvpos,"%*windowrect(,l),%*windowrect(,t),%*windowrect(,w),%*windowrect(,h)"
R , *script %0\Script\resetalias.js,ppvpos
^W ,*script %0\Script\SetDimensions.js,"%*script("%0\Script\rotateExecute3.js","vposi","ppvpos")"
}

使い方

  • C_w wで記憶
  • C_w C_wで記憶した順に復元
  • C_w rでリセット

0 件のコメント:

コメントを投稿