自作のメニューからjsを実行したいNo.11633
styth さん 25/07/02 10:39
 
a=menu("xxx","yyy");
if(a==1){
  message(a);
  js:Command("パスをコピー(フルパス)");
} else if(a==2){
  //複数選択された項目のパスをクリップボードにコピー
  message(a);
//  js:"C:\HidemaruData\Macro\test.js";// ここがうまくいきません
}

 例えば、上記の様にメニューを表示させて、a=2を選んだらtest.jsを実行したい場
合、
} else if(a==2){ 以下の部分をどう記述すれば良いんでしょうか?
 よろしくお願いします。


test.jsの内容(ヘルプより引用)
  //test.js
  var s="";
  var iItem=getNextItem(-1,2);
  if(iItem<0){
    message("選択がありません");
  }else{
    while( iItem >= 0 ) {
      s=s+getItemPath(iItem)+"\r\n";
      iItem=getNextItem(iItem,2);
    }
    setClipboard(s);
  }

 

[ ]
RE:11633 自作のメニューからjsを実行したNo.11634
秀丸担当 さん 25/07/02 12:52
 
秀丸エディタにはexecjs文というものがありますが、秀丸ファイラーClassicにはあ
りません。

実は秀丸エディタであっても、js{}内からexecjs文は使えないです。
秀丸エディタではloadTextFileをしてからevalするという手法があります。

秀丸ファイラーClassicでも同様にloadTextFileしてからevalでやることが可能です。

例:
test=loadTextFile("C:\\Folder\\Test.js");
eval(test);

これをメニューを選んだときにやるとできると思います。

[ ]
RE:11634 自作のメニューからjsを実行したNo.11636
styth さん 25/07/03 08:19
 
>test=loadTextFile("C:\\Folder\\Test.js");
>eval(test);
ありがとうございます。上手く行きました。
ところで、ヘルプにevalの記載が見つかりませんでした。支障が無ければ載せて頂き
たいのですが、よろしくお願いします。

(追伸)
ヘルプにタイプミスと思われる箇所を見つけました。何かの折に訂正して頂ければと
存じます。
ブックマーク
●ランチャとして
%1 などを書くことでドラッグ&ドロップせずに、ファイル一覧で選択されているフ
ァイルをそのまなパラメータに渡すことができます。×
%1 などを書くことでドラッグ&ドロップせずに、ファイル一覧で選択されているフ
ァイルをそのままパラメータに渡すことができます。〇


[ ]
RE:11636 自作のメニューからjsを実行したNo.11638
秀丸担当 さん 25/07/03 11:58
 
確かにevalはヘルプに書いていないです。
evalは、JavaScriptにビルトインされているメソッドで、WSHやWebなどJavaScriptで
あればほぼ全ての環境で実行できるものになっています。
ビルトインのものであると、どこかに書いておこうと思います。
ヘルプのご指摘ありがとうございます。
直しておきます。

[ ]