2014年5月20日火曜日

自窓以外を閉じる

窓をたくさん開いて意味がわからなくなった時のために、自窓以外を一挙に閉じることができれば便利かもと思って考えてみた。

自窓以外の窓を閉じる

*closeppx V* %: *closeppx C* %: %Ob %0\PPCW.EXE -r -bootid:%*regexp(%n,"/.(.)/$1/")

これをPPcから実行する。

PPc[A]以外の窓を閉じる

*closeppx V* %: *closeppx C* %: %Ob %0\PPCW.EXE -r -bootid:A

僕の使い方だとこっちのが有用性ありそう。こちらは、PPvからも実行可能。

自窓以外の窓を閉じる(スクリプト)


自窓が一瞬でも閉じるのが気に食わない!という場合はスクリプトを使うことになる。

PPxClose.js

//!*script

var close_ids = [];
var useppx = PPx.Extract('%n');

// PPcのID取得
for (var i = 65; i < 91; i++) {
  ppcid = String.fromCharCode(i);
  if (PPx.Extract('%NC' + ppcid).match(/.+/)) {
    if ("C" + ppcid == useppx ) {
    }
    else {
      close_ids.push("C" + ppcid);
      continue;
    }
  }
}

PPx.Execute('*closeppx "' + close_ids.join(',') + '"');
PPx.Execute('*closeppx V*');

*script %0\Script\PPxClose.js

PPc[A]以外の窓を閉じる(スクリプト)


同上。

PPxClose2.js

//!*script

var close_ids = [];
var useppx = PPx.Extract('%n');

// PPcのID取得
for (var i = 66; i < 91; i++) {
  ppcid = String.fromCharCode(i);
  if (PPx.Extract('%NC' + ppcid).match(/.+/)) {
    close_ids.push("C" + ppcid);
    continue;
  }
}

PPx.Execute("%Ob %0\PPCW.EXE -r -bootid:A");
if (close_ids.join(',') != "") {
  PPx.Execute('*closeppx "' + close_ids.join(',') + '"');
}
PPx.Execute('*closeppx V*');

*script %0\Script\PPxClose2.js


追記 2014/05/21


作者さんに自窓以外を閉じる方法を教えていただきました。
これなら、PPcでもPPvでも実行できてスクリプトも使わずに済みます。



PPc[A]以外の窓を閉じるなら

%Ob %0\PPCW.EXE -r -bootid:A %: *closeppx !/C_*A/

こんな感じかな?

0 件のコメント:

コメントを投稿