|
既に要望が出てるかもしれませんが。
1. スクリプトの機能追加
(1) GetClipboard、Rename、Deleteなどの追加
秀丸エディタのマクロに比べて機能が貧弱すぎるように思います。
もちろんCommandメソッドで色々な事ができるのですが、ファイラーがサポートして
いる基本的なファイル操作はHmFilerオブジェクトのメソッドとしてサポートすべき
ではないでしょうか。
基本的なファイル操作とは、ファイル/フォルダーに対しての操作で、バッチ処理に
適さないもの(別途ユーザの操作が必要なもの)を除く操作を意味します。
Cut、Copy、Pasteをメソッドでサポートしているのに、Rename、Deleteがないのが
不思議。
あとできればAttribute(ファイル属性の変更)とかも欲しいですね。
GetClipboardはSetClipboard(str)の逆動作です。
IEオブジェクトを作成して取得することはできますが、セキュリティ関連の設定変
更するか、毎回警告ダイアログ表示するかで、どちらもしたくない。
個人的にはSetClipboardを使うことはあまりなく(ファイル一覧や選択ファイル一覧
をクリップボード経由で他アプリに渡すくらいかな、作ってないけど)、
むしろ、Webブラウザ、秀丸エディタ、Excelで開いた内容からコピーした文字列を、
ファイラー側でファイル選択した複数ファイルに対して操作したい。
Renameなどのファイル操作はfilesystemobjectでできますが、オブジェクトを作成
しなければならず、Copy/Pasteと比べるとお手軽というわけにいきません。
特にCommand("名前の変更")とかのCommandメソッドを使った方法はユーザの手操作
が必要になるためバッチ処理には向いていません。
で、最終的に今やりたい事は、ブラウザでダウンロードしたファイルのファイル名
を自分で管理するための名称にリネームする。
現状はIEオブジェクト使って取り出して、FileSystemオブジェクト使ってリネーム
するものは作ったが、置き換えたい。
また、同様に今後開発するスクリプトでもクリップボード経由でファイラーに渡し
たい。
[手順]
(a) Webブラウザでファイルをダウンロード(複数)
(b) Webページや秀丸エディタ、Excelで編集中のファイルなどからファイル名の一
部または全部(拡張子を除く)となる文字列をクリップボードにテキスト形式でコピー
(c) 秀丸ファイラーclassicでファイル選択(複数)してマクロ起動
(d) クリップボードからテキスト取り出し(ここでGetClipboard)
(e) 選択ファイルのファイル名の一部または拡張子を除いた部分を置き換えてリ
ネーム(ここでRename)
(2) GUIメニュー
QuestionのようなYes/Noの2択でなく、複数項目から選択してインデックス値を返
すような関数
対応していただける場合の関数名や細かい仕様はお任せします。
[自分のスクリプトの現状]
(ver. 1) 複数行にまたがる番号付き選択肢の文字列をInputBoxで表示して番号入力
(ver. 2) 上記を改良してGUI版を作成。IEオブジェクトをcreateObjectしてラジオ
ボタン形式で表示し選択
[問題点]
今後メニューが必要なスクリプトを開発する場合に、
ver.1方式だと手入力が必要なので面倒。
ver.2方式だと表示までにちょっと待たされる。また、細かいレイアウトはできる
が、そこまで凝った物はいらない場合もある。
例1) 簡易版GUI選択(秀丸マクロのmenu,menuarray,mousemenu,mousemenuarrayの様な
もの)
凝ったメニューが要らない場合用、ただし表示位置は検討の必要あり(ファイラーは
エディタと違って固定場所に配置している)
sel = menu(文字列)
sel = mousemenumenu(文字列)
sel = menuarray(文字列配列)
sel = mousemenuarray(文字列配列)
sel: 秀丸エディタのマクロのresultと同様だが復帰値で返す
例2) フォーム形式版GUI選択(フォームコントロール/OK/Cancelボタン付き)
少しだけ凝ったメニューが欲しい場合用
sel = SelectMenu(title, caption, dataArray, type, defaultIndex, direction,
[position[,top,left]])
title: ウィンドウタイトルバーの文字列
caption: ユーザーに対する指示などの文字列
dataArray: 表示する選択項目の配列
type: ラジオボタン形式かコンボボックス形式かなどの指定
defaultIndex: 初期選択項目(指定無し、または0の場合は初期選択なし)
direction: ラジオボタン形式の場合の並び方向 0:縦(デフォルト),1:横
position: フォーム用ウィンドウ表示位置 0:画面中央、1:ファイラー中央、2:指定
位置
top: 表示位置が指定位置の場合の画面左端からの位置
left: 表示位置が指定位置の場合の画面左端からの位置
sel: 例1と同じ
ラジオボタンとコンボボックスは別々の関数でもかまいません。
ウインドウサイズは自動的に算出が望ましいがパラメタ指定でも可。
以上ご検討いただけると幸いです。
|
|