|
ステータスバーに表示される再生時間などの情報は、Windowsで共通のツールチップ
用の情報で、それをステータスバーに表示しています。
秀丸ファイラーClassic自身は何が表示されるかわからないです。
ファイルの内容を読み込んで表示しているはずなので、複数ファイルで計算するとし
たら時間がかかる可能性もあると思います。
ステータスバーではないですが、詳細表示で「長さ」の列を追加して表示する方法が
あります。
詳細表示のファイル一覧上部の右クリックから「その他(C)...」で表示する列を変更
できます。
(または[表示(V)]→[カスタマイズ(C)...])
「利用できるすべてのプロパティを表示(S)>>」を出して、「メディア」の分類にあ
る「長さ」を追加します。
これは詳細表示で1つずつのファイルについて表示するだけです。
この詳細表示の列の情報を元に、ちょっと無理矢理ですが、スクリプトを使って合計
を計算する方法も考えられます。
例えば、メモ帳か秀丸エディタなどのテキストエディタで、C:\Folder\Test.jsの内
容を後述のように作成します。
ブックマークに追加して、「パス」の内容を「script:C:\Folder\Test.js」というよ
うにスクリプトを指定します。
これでブックマークを選ぶと、選択しているファイルの合計時間をメッセージボック
スで表示します。
リンクバーやツール項目バーにするとボタンにできます。
(ちなみにDateオブジェクトやら、Shell.ApplicationのExtendedPropertyやらでや
るのが正攻法なのだと思いますが、だいぶん取り扱いが面倒なので簡便にしました)
以下がスクリプト内容
-------
//秀丸ファイラーClassic用スクリプト
//機能:
// 詳細表示の「長さ」列の「00:00:00」の内容を加算してメッセージを表示します
strWScriptType = typeof( WScript );
if( strWScriptType.toLowerCase() == "object" ) {
strMsg =
"このスクリプトは秀丸ファイラーClassic専用です。\n" +
"\n" +
"「ブックマークの整理」または「ツールの整理」で「追加」して、" +
"パスの右側の「>>」ボタンの「スクリプトの参照」より、このファ" +
"イルを指定します。\n" +
"(パスの先頭に「script:」と書かれたパスとして登録)"
WScript.Echo( strMsg );
WScript.Quit();
}
d="00:00:00";
cDuraion=0;
cNoDuraion=0;
cItem=GetItemCount();
cCol=GetColumnCount();
for(iCol=0;iCol<cCol;iCol++){
if(GetColumnText(iCol)=="長さ")break;
}
if(iCol>=cCol){
Message("「長さ」列がありません");
EndMacro();
}
iItem=GetNextItem(-1,2);
if(iItem<0){
Message("選択がありません");
EndMacro();
}
while( iItem >= 0 ) {
d2=GetItemText(iItem,iCol)
if(d2!=""){
d=AddDuration(d,d2);
cDuraion++;
} else {
cNoDuraion++;
}
iItem=GetNextItem(iItem,2);
}
Message("長さあり項目"+cDuraion+"個/時間合計 "+d+"\n"+
"長さなし項目"+cNoDuraion+"個");
function AddDuration(s1,s2) {
if(s2=="")return s1;
s=Number(s1.split(":",3)[2]);
s+=Number(s2.split(":",3)[2]);
m=Math.floor(s/60);
m+=Number(s1.split(":",3)[1]);
m+=Number(s2.split(":",3)[1]);
h=Math.floor(m/60);
h+=Number(s1.split(":",3)[0]);
h+=Number(s2.split(":",3)[0]);
return h+":"
+("0"+(m%60)).slice(-2)+":"
+("0"+(s%60)).slice(-2);
}
|
|