秀丸マクロとhmV8の例題のひとつとなります。
エキスプローラーなどで、「1つ」または「複数」のファイルをコピーした後
秀丸に張り付けると、「ファイル名のフルパス名(一覧)がペーストされる」といったものを作ってみましょう。
この程度のことであれば、強力な.NETであれば、数行で情報を獲得できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #JS = loaddll ( hidemarudir + @ "\hmV8.dll" ); disabledraw ; #_ = dllfuncw ( #JS , "DoString" , R"JS( let LibForms = host.lib( "System.Windows.Forms" ); let Clipboard = LibForms.System.Windows.Forms.Clipboard; let files = Clipboard.GetFileDropList(); // ファイルコピー属性 if (files.Count > 0) { hm.Macro.Eval( "begingroupundo;" ); // 順次リストからファイル名を取得して、秀丸へと挿入 for (let f of files) { hm.Macro.Var[ "$filename" ] = f; hm.Macro.Eval( f => { /* insert $filename + "\n"; */ } ); } hm.Macro.Eval( "endgroupundo;" ); // ファイルコピーの属性ではない } else { // ファイル属性じゃないのであれば、秀丸の本来のペースト機能にゆだねる。 hm.Macro.Eval( "paste;" ); } )JS" ); enabledraw ; // 解放 freedll ( #JS ); |
例えば、特定の拡張子なら、
ファイルをコピーして秀丸上でペーストすると、その中身の文字列をペーストする、
などというのもいとも簡単に実装できるでしょう。
上記のプログラムが4、5行増えるだけです。