|
スクリプトは手間なので避けたいような感じだったので、これまで深くは触れませんでしたが、やっぱりスクリプトでするのがいいのではないかと思います。
ライブラリにでもアップしようかと思っていましたが、この投稿の末尾に書いておきます。
例えば、C:\Folder\TextHist.jsというファイル名で、スクリプトを保存しておきます。
ブックマーク(またはツール項目)のパスには、
js:C:\Folder\TextHist.js
として登録します。
メニューが出て、入力やら履歴の選択やらテキストを開いたりができます。
手間かもしれませんが、本体機能をいじるのは結構大変ですし、このスクリプトはテキストで履歴を自由に編集できて、けっこう理想に近いのではないかと思うのでこれが一番合理的なんじゃないかと思います。
メニューから選ぶだけだとすぐに入力ボックスは出ないので、同じスクリプトでパラメータを付けて、もう1つブックマークに登録するといいです。
以下のように登録します。
js:"C:\Folder\TextHist.js" i
C:\Folderという場所は例なので、好みの場所にしてもらえばいいです。
ブックマークは、「オプション(O)>>」からキー割り当てができます。
フィルタバーは非表示にして、入力ボックスを出すスクリプトへのキー割り当てと、メニューを出すキー割り当てを2つしておくと便利だと思います。
例えばツールバーの見た目で以下のような2つのボタンにできます。(1つでもいいですが)
[フィルタ入力] [▼]
これで勘弁してほしいです。
お願いします。
以下がスクリプトです。
var aMenu = [];
var iInput = -1;
if (1) {
aMenu.push("入力");
iInput = aMenu.length;
}
var strHist = loadTextFile(scriptFullName + ".txt");
var aHist = [];
if (typeof (strHist) != "undefined") {
aHist = strHist.split("\r\n");
}
var cLimit = 5; //上限
var i;
for (i = 0; i < aHist.length; i++) {
if (aHist[i] == "") {
aHist.splice(i, 1);
i--;
continue;
}
aMenu.push("&" + String(i + 1) + " " + aHist[i]);
if (i >= (cLimit - 1))
break;
}
aMenu.push("履歴ファイルを開く(&O)");
var iOpenHist = aMenu.length;
var iClear = -1;
if (getWildCard() != "") {
aMenu.push("フィルタを解除(&C)");
iClear = aMenu.length;
}
if (getArg(0) == "i") {
i = iInput;
}
else {
i = menuArray(aMenu);
}
if (i == iInput) {
var strFilter = input("入力してください\n例:*.txt\n例:C:\\Folder");
if (strFilter != "") {
for (i = 0; i < aHist.length; i++) {
if (aHist[i] == strFilter || aHist[i] == "") {
aHist.splice(i, 1);
i--;
}
}
aHist.unshift(strFilter);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.CreateTextFile(scriptFullName + ".txt", 1, 1);
file.Write(aHist.join("\r\n") + "\r\n");
file.Close();
open(strFilter);
}
}
else if (i == iOpenHist) {
new ActiveXObject("Shell.Application").ShellExecute(scriptFullName + ".txt");
}
else if (i == iClear) {
open("");
}
else if (i > 1 && i < aMenu.length) {
open(aHist[i - 2]);
}
|
|