Folder.httの改造1 BACK
WindowsのWeb表示で使われているスクリプトを改造しました。
フォルダで映像・音楽ファイルを選ぶと
自動でプレビューが表示され、再生されます。
障害防止に元ファイルのバックアップを作成し、
コピーするバッチもつけました。
Folder.htt [オリジナルは*:\windows\web](適当なフォルダにFolder.txtとして保存してください) |
<!-- * This file was automatically generated by Microsoft Internet Explorer 4.0 * using the file %THISDIRPATH%\folder.htt (if customized) or * %TEMPLATEDIR%\folder.htt (if not customized). --> <html> <style> body {font: 9pt/10pt MS UI Gothic; margin: 0} #FileList {position: absolute; left: 30%; width: 70%; height: 100%} #Media {margin-left: 15px} #Panel {position: absolute; width: 30%; height: 100%; overflow: auto} #PieChart {width: 100px; height: 50px; margin-top: 10px} #Thumbnail {width: 160px; height: 160px; margin-top: 0px} #Status {margin-left: 15px} #Brand {position: absolute; left: 30%; width: 70%; height: 100%; overflow: auto} p {margin-left: 15px; margin-top: 15px; margin-right: 15px} p.Title {font: 16pt; font-weight: bold; margin-top: 5px} p.LogoLine {margin-left: 0; margin-top: -5px; margin-right: 0; margin-bottom: 20px} p.Warning {font-weight: bold; color: red} p.Links {margin-top: 5px} a.Command {font-weight: bold} div.Release {width: 160px; text-align: right; background: buttonface; padding: 0px, 8px, 4px, 8px} </style> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis"> <!-- allow references to any resources you might add to the folder --> <!-- (a "webbot" is a special wrapper for FrontPage compatibility) --> <!-- webbot bot="HTMLMarkup" tag="base" startspan --> <base href="%THISDIRPATH%\"> <!-- webbot bot="HTMLMarkup" endspan --> <script language="JavaScript"> var L_Prompt_Text = "アイコンを選択すると、その説明が表示されます。"; var L_Multiple_Text = " 個のオブジェクトを選択"; var L_Size_Text = "サイズ :"; var L_FileSize_Text = "合計ファイル サイズ : "; var L_Delimiter_Text = ","; var L_Bytes_Text = " バイト"; var L_Attributes_Text = "属性"; var L_Codes_Text = "RHSaCE"; // suppress the Archive flag var L_ReadOnly_Text = "読み取り専用"; var L_Hidden_Text = "隠しファイル"; var L_System_Text = "システム"; var L_Archive_Text = "アーカイブ"; var L_Compressed_Text = "圧縮"; var L_Encrypted_Text = "暗号化"; var L_NoAttributes_Text = "(標準)"; var L_Properties_Text = "プロパティ(&R)"; var timer = 0; var wantMedia = true; // cool, but may hinder media file manipulation function FixSize() { // this function handles fixed panel sizing and collapsing when the window resizes var threshold = 400; var miniHeight = 32; var ch = document.body.clientHeight; var cw = document.body.clientWidth; if (cw < threshold) { document.all.Panel.style.visibility = "hidden"; document.all.MiniBanner.style.visibility = "visible"; document.all.FileList.style.top = miniHeight; document.all.FileList.style.pixelLeft = 0; } else { document.all.MiniBanner.style.visibility = "hidden"; document.all.Panel.style.visibility = "visible"; document.all.FileList.style.top = 0; document.all.FileList.style.pixelLeft = document.all.Panel.style.pixelWidth; } document.all.FileList.style.pixelWidth = cw - document.all.FileList.style.pixelLeft; document.all.FileList.style.pixelHeight = ch - document.all.FileList.style.pixelTop; } function FormatNumber(n) { var t = ""; var i, j = 0; for (i = n.length - 1; i >= 0; i--) { t = n.charAt(i) + t; if (i && ((++j % 3) == 0)) t = L_Delimiter_Text + t; } return t; } function Properties() { FileList.SelectedItems().Item(0).InvokeVerb(L_Properties_Text); } function Init() { // call our FixSize() function whenever the window gets resized window.onresize = FixSize; FixSize(); Info.innerHTML = L_Prompt_Text; } </script> <script language="JavaScript" for="FileList" event="SelectionChanged"> // this script updates the left info panel when you select icons var fldr = FileList.Folder; var items; var name; var data; var text; var title; var size = 0; var i; // cancel any pending status message if (timer) { window.clearTimeout(timer); timer = 0; } // erase any visible thumbnail since the selection changed document.all.Thumbnail.style.display = "none"; document.all.Status.style.display = "none"; // stop & destroy any media player if (wantMedia) document.all.Media.innerHTML = ""; data = FileList.SelectedItems().Count; if (data == 0) { // nothing selected? Info.innerHTML = L_Prompt_Text; return; } else if (data > 1) { // more than one item selected? text = data + L_Multiple_Text + "<br>"; if (data <= 100) { for (i = 0; i < data; i++) size += FileList.SelectedItems().Item(i).Size; if (size) text += "<br>" + L_FileSize_Text + FormatNumber(size.toString()) + L_Bytes_Text + "<br>"; if (data <= 16) for (i = 0; i < data; i++) text += "<br>" + FileList.SelectedItems().Item(i).Name; } Info.innerHTML = text; return; } items = FileList.SelectedItems().Item(0); // name name = fldr.GetDetailsOf(items, 0); text = "<b>" + name + "</b>"; // type data = fldr.GetDetailsOf(items, 2); if (data) text += "<br>" + data; // date data = fldr.GetDetailsOf(items, 3); if (data) text += "<br><br>" + fldr.GetDetailsOf(null, 3) + ":<br>" + data; // size size = FileList.SelectedItems().Item(0).Size; if (size && size < 1000) text += "<br><br>" + L_Size_Text + size + L_Bytes_Text; else { data = fldr.GetDetailsOf(items, 1); if (data) text += "<br><br>" + fldr.GetDetailsOf(null, 1) + ": " + data; else if (size) text += "<br><br>" + L_Size_Text + FormatNumber(size.toString()) + L_Bytes_Text; } // extra details? for (i = 4; i < 10; i++) { title = fldr.GetDetailsOf(null, i); if (!title) break; data = fldr.GetDetailsOf(items, i); if (title == L_Attributes_Text) { var code; var s = ""; text += "<br><br>" + title.link("JavaScript:onClick=Properties()") + ": "; for (i = 0; i < 6; i++) { code = L_Codes_Text.charAt(i); if (data.indexOf(code) > -1) { if (s) s += ", "; if (i == 0) s += L_ReadOnly_Text; else if (i == 1) s += L_Hidden_Text; else if (i == 2) s += L_System_Text; else if (i == 3) s += L_Archive_Text; else if (i == 4) s += L_Compressed_Text; else if (i == 5) s += L_Encrypted_Text; } } if (!s) s = L_NoAttributes_Text; text += s; } else if (data) text += "<br><br>" + title + ":<br>" + data; } // tip? data = fldr.GetDetailsOf(items, -1); if (data && data != name) { var start; var end; var theLink; var a; // parse lines for Office files without breaking links below a = data.split("\n"); data = a.join("<br>\n"); // look for embedded links text += "<br><br>"; start = data.indexOf("http://"); if (start < 0) start = data.indexOf("file://"); if (start < 0) text += data; else { end = data.indexOf(" ", start); if (end < 0) end = data.length; if (start > 0) text += data.substring(0, start - 1); theLink = data.substring(start, end); text += theLink.link(theLink); if (end < data.length) text += data.substring(end + 1, data.length); } } // replace Info with the new text Info.innerHTML = text; if (wantMedia && size) { // show media preview or thumbnail based on file extension ext = name.substring(name.lastIndexOf(".") + 1, name.length); ext = ext.toLowerCase(); if (ext == 'avi' || ext == 'mov' || ext == 'qt' || ext == 'mpe' || ext == 'mpeg' || ext == 'mpg') { // show a movie player document.all.Media.innerHTML = '<object ID="Player" style="width: 240px; height: 221px" classid=clsid:05589FA1-C356-11CE-BF01-00AA0055595A><param name="FileName" value="' + items.Path + '"><param name=ShowDisplay value=0><param name=autostart value=1><param name=BorderStyle value=1></object>'; } else if (ext == 'mp3' || ext == 'aif' || ext == 'aifc' || ext == 'aiff' || ext == 'au' || ext == 'mid' || ext == 'rmi' || ext == 'snd' || ext == 'wav') { // show a sound player document.all.Media.innerHTML = '<object ID="Player" style="width: 160px; height: 28px" classid=clsid:05589FA1-C356-11CE-BF01-00AA0055595A name="sample"><param name="FileName" value="' + items.Path + '"><param name=autostart value=1><param name=ShowDisplay value=0></center></object>' } } // try to generate a new thumbnail asynchronously, and delay the status message one second if (size && (size < 10000000) && Thumbnail.displayFile(items.Path)) timer = window.setTimeout('document.all.Status.style.display = ""', 1000); </script> <script language="JavaScript" for="Thumbnail" event="OnThumbnailReady"> // when a valid thumbnail has been generated, display it window.clearTimeout(timer); timer = 0; document.all.Status.style.display = "none"; if (document.all.Thumbnail.haveThumbnail() && document.all.Media.innerHTML == "") document.all.Thumbnail.style.display = ""; </script> </head> <body scroll=no onload="Init()"> <!-- start mini banner --> <div ID="MiniBanner" style="visibility: hidden; position: absolute; width: 100%; height: 32px; background: window"> <!-- using a table with nowrap to prevent word wrapping --> <table><tr><td nowrap> <p class=Title style="margin-top: 0"> <!--webbot bot="HTMLMarkup" startspan alt="<B><I>Web View Folder Title</I></B> " --> %THISDIRNAME% <!--webbot bot="HTMLMarkup" endspan --> </td></tr></table> </div> <!-- end mini banner --> <!-- start left info panel --> <div id=Panel style="background: white URL(file://%TEMPLATEDIR%\wvleft.bmp) no-repeat"> <p> <object classid="clsid:E5DF9D10-3B52-11D1-83E8-00A0C90DC849" width=32 height=32> <param name="scale" value="100"> </object> <p class=Title> <!--webbot bot="HTMLMarkup" startspan alt="<B><I>Web View Folder Title</I></B> " --> %THISDIRNAME% <!--webbot bot="HTMLMarkup" endspan --> <p class=LogoLine> <img src="%TEMPLATEDIR%\wvline.gif" width=100% height=1px> <p> <span id=Info> </span> <!-- HERE'S A GOOD PLACE TO ADD A FEW LINKS OF YOUR OWN --> <!-- (examples commented out) <p> <br> <a href="http://www.mylink1.com/">Custom Link 1</a> <p class=Links> <a href="http://www.mylink2.com/">Custom Link 2</a> --> <p> <!-- this is the thumbnail viewer control --> <object id=Thumbnail classid="clsid:1D2B4F40-1F10-11D1-9E88-00C04FDCAB92" style="display: none"> </object> <!-- this is the status message that pops up during thumbnail generation --> <div id=Status style="display: none"> プレビューの作成中... </div> <p> <!-- this contains any ActiveMovie control created later --> <div id=Media> </div> </div> <!-- end left info panel --> <!-- this is the standard file list control --> <!-- webbot bot="HTMLMarkup" startspan --> <object id=FileList border=0 tabindex=1 classid="clsid:1820FED0-473E-11D0-A96C-00C04FD705A2"> </object> <!-- webbot bot="HTMLMarkup" endspan --> </body> </html> |
バッチファイル(上のFolder.txtと同じフォルダにFold.batとでも名前を付けて保存してください。) |
@echo off ECHO [Folderユーテリティ] ECHO 1 書き換え ECHO 2 書き戻し CHOICE /C:123 番号を指定して下さい IF ERRORLEVEL 2 goto rt :cp attrib -H %WinDir%\web\Folder.htt ren %WinDir%\web\Folder.htt Folder.0tt copy Folder.txt %WinDir%\web\Folder.htt attrib +H %WinDir%\web\Folder.htt goto end :rt attrib -H %WinDir%\web\Folder.htt copy %WinDir%\web\Folder.0tt %WinDir%\web\Folder.htt attrib +H %WinDir%\web\Folder.htt del %WinDir%\web\Folder.0tt goto end :end exit |