必要なときだけPPcを起動して、PPvの表示ファイルを切り替えられるようにする。これにより、PPcに紐付けられたビュアーとしてではない、PPv単体での活用が可能になる。
以下を編集して取込。
_Command = { ; ユーザコマンド・関数
opensyncwin = *ppc -r -bootid:x -single -k *jumppath %*arg(1) %%: *mapkey use,K_syncwin %%: *ppvoption id %%*rightstr("%%n", 1) %%: *ppvoption sync on %%: *fitwindow %*extract("%%NV%*rightstr("%n", 1)"),%%NC,8
}
KV_main = { ; PPvメイン窓
O ,*opensyncwin %0
}
K_syncwin = {
ENTER ,*ifmatch "o:e,a:d+","%*name(CD,"%R","%1")" %: %K"@ENTER" %: *stop
%K"@Q
}
ユーザコマンド*opensyncwinにパスを渡すと、そのパスをPPcで表示する。ここではPPxフォルダのパスを渡している。
操作は以下の通り。
- PPvを起動
- [O]を押すとPPcが連動ビューONで起動
- 目的のファイルを見つけたら[ENTER]でPPcが閉じる
応用編
*opensyncwinに渡すパスを変えてみよう。
表示中のファイルパスを渡す
PPvで表示中のファイルのパスを渡す。
*opensyncwin %FCD
ListFileを渡す
予め作っておいたListFileを渡す。以下はPPxフォルダにあるforppv.txtを渡す場合。
*opensyncwin %0forppv.txt
ListFileは、*makelistfileを使うと作るのが簡単。
例えば登録したいエントリをマークし、*makelistfile %0forppv.txt -basic -marked でListFileを作成することができる。 また、PPcでListFileを表示し、そこにエントリをコピーをすると、そのエントリを登録することができる。
スクリプトで作成したListFileを渡す
PPvの表示履歴を渡す。 以下をScriptフォルダに保存。
ppvhistory.js
//!*script
// %hvnをListfile形式で一時ファイルに保存し、パスを返す
// 例:*ppc -bootid:z -single %*script(%0\Script\ppvhistory.js)
// 一時ファイルを作成
var tempfile = PPx.Extract("%*temp\(\)ppvhis.txt");
var strLine = ";ListFile\r\n";
// %hvnを20まで取得
for (var i = 0; i < 20; i++) {
if (PPx.Extract("%hv"+i)!="") {
strLine += PPx.Extract("%hv"+i)+ "\r\n";
} else {
break;
}
}
// 一時ファイルに書き込み
var fs = PPx.CreateObject("Scripting.FileSystemObject");
var f = fs.OpenTextFile(tempfile, 2, true, -1); // unicodeで書き込み
f.Write(strLine);
f.Close();
PPx.Result = tempfile;
以下のコマンドをPPvから実行する。
*opensyncwin %*script(%0\Script\ppvhistory.js)

0 件のコメント:
コメントを投稿