ブラウザ用のWebアプリケーションでは、HTMLベースのGUIと各種のスクリプトやActiveX、Javaアプレットなどを組み合わせて高度な機能を機能を提供できます。ただ、セキュリティの関係上ローカルファイルが利用できなかったり、閲覧者が使用しているブラウザによって結果が変わってきたりと実用的なアプリケーションを作ろうとすると不便を感じることも多いでしょう。 このHTAを作るのは簡単で、HTMLファイルがあればその拡張子を.htaに変えればダブルクリックで起動できるHTAになります。つまり、適当な文字を表示するHTMLファイルの拡張子を.htaに変えるだけでも単純なHTA作ることができるわけです(そのようなHTAに実用上の利点はないでしょうが)。 HTAの例今回作るHTAは、以下のようなものです。
まず、セレクトメニューとメディアプレイヤーを以下のようにして配置してみます。メディアプレイヤーは、クラスIDを指定してActiveXコンポーネントとして埋め込んでおきました。 <html> <body> <h2 align="center">HTA Test</h2> <p align="center"><select name="list"></select></p> <p align="center"><object id="player" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"> </object> </p> </body> </html> 続いて、アプリケーションの初期化でFileSystemObjectを使用してローカルファイルlist.txtを読み込み、セレクトメニューにファイル名を設定します。 function init() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFile("list.txt"); var rs = f.OpenAsTextStream(); var i = 0; while (!rs.AtEndOfStream) { list[i] = rs.ReadLine(); i++; } rs.close(); for (var j=0;j<i;j++) { var n = document.createElement("option"); n.text = list[j]; document.all.list.add(n); } } これで、アプリケーションのセレクトメニューにファイル名のリストが追加されたので、あとはセレクトメニューのOnChangeで選ばれたファイルパスをメディアプレイヤーオブジェクトに渡せば再生されます。 function listChange() { document.all.player.FileName = document.all.list.options[document.all.list.selectedIndex].text; } 以上で完成です。このアプリケーションは、拡張子を.htmlとするとブラウザでWebページとして表示することも出来ます。ただし、その場合はローカルファイルにアクセスできないのでファイル名が読み込まれず、プレイヤーとしては機能しません。 プログラムまず、test.htaをダウンロードしたら同じディレクトリに以下のようなlist.txtを作成してください(ファイルのパスは、実行環境にあわせる)。 D:\BGM\no1.mid D:\BGM\no2.mp3 D:\BGM\no3.wma list.txtとtest.htaを同じディレクトリに置いたら、test.htaをダブルクリックしてください。これでアプリケーションが起動しますので、セレクトメニューで演奏するファイルを選んで実際に演奏されるか確認してみましょう。 なお、HTAではHTA:APPLICATIONタグを使用することでアプリケーションの表示形式などをカスタマイズできます。このタグでウインドウの表示形態やアイコン、メニューなども設定できるようなので、うまく設定すればよりネイティブアプリケーションに近い外観・機能を持たせることが出来るでしょう。 一度ローカルファイルとして保存してから実行してください。 |