2010/09/27

ウィンドウを画面の横半分などにリサイズ・移動

NILScriptのWindowユニットで提供されるクラス群では、スクリプトで生成した自前ウィンドウも他のプロセスが所有するウィンドウも、共通のメソッド・プロパティで操作可能です。
移動やリサイズなどの一般的な操作から、表示スタイルの変更などの手動ではできない操作まで、様々な操作を行なえます。
ウィンドウを移動したりリサイズするには、「moveTo()」メソッドを使用します。移動せずリサイズするだけの「resize()」メソッドもあります。

ウィンドウをデスクトップの横半分を占めるように広げたい場合などは、ディスプレイの情報を取得する「Display」クラスを使い、下記のようにするとよいでしょう。
var {Window,Display}=require('Window');
var a=Display.active.work;
Window.active.moveTo(a.left,a.top,a.width/2,a.height);
Displayクラスには、プライマリディスプレイを取得する「Display.primary」の他、アクティブウィンドウがあるディスプレイを取得する「Display.active」や、マウスカーソルがあるディスプレイを取得する「Display.pointed」などもあります。
Displayオブジェクトの「work」プロパティでは、タスクバーなどの領域を除いた作業領域の範囲を取得できます。
これらの値を元にした座標やサイズを「Window.active.moveTo()」に渡せば、画面に合せてアクティブウィンドウを移動・リサイズできます。
「Window.find()」などを使えば、アクティブウィンドウ以外の特定のウィンドウを表すWindowオブジェクトを取得して操作することも可能です。

Hotstrokesの操作に対して割り当てて好きなときに呼び出したり、「Window.observe()」でウィンドウの出現などを監視して自動操作したり、ブラウザなどの常用ソフトのウィンドウをリサイズしてすぐに終了するスクリプトを作成して必要なときに実行したりして利用するといいでしょう。


なお、ブラウザなど常に起動しているソフトのウィンドウの位置・サイズを固定して長時間常時表示させていると、枠などの変化のない部分の映像がディスプレイに焼き付いてしまうことがあるので注意してください。
液晶ディスプレイでは焼き付きは起こらないという話がありますが、1万時間くらい同じ映像を表示させているとさすがに多少焼き付いてしまうようです。
画面全体が#202020くらいの暗い色になっているときでないと分からないので、全画面で動画再生やゲームをする人でなければ気にならないでしょうが。

0 件のコメント:

コメントを投稿