Internet Explorer 5 では、HTML Applications (HTA) が導入されています。
これにより、「ブラウザから解放された」 Dynamic HTML (DHTML) テクノロジを使ってスタンドアロン アプリケーションを作成することができます。
HTA では、アプリケーションを、Web ページを作成する場合と同様に DHTML やスクリプトを使って作成することも、Web 用に作成されたコンテンツをベースに作成することもできます。
ここでいう「ブラウザから解放された」とは、HTA が 2 つの点で Web ページとは大きく異なるということを意味しています。
- アプリケーションは、すべて DHTML で作成されますが、ブラウザのメニューやツールバーのない自分自身のウィンドウ内で実行されます。
つまり、アプリケーションがユーザー インターフェイスを完全に定義するということです。- アプリケーションは完全に信頼されるものであり、セキュリティ上の理由から Web ページに課せられる制約はいっさい受けません。
訪問したときに実行される Web ページとは違って、ユーザーは HTA を信頼する必要があります。
しかし、いったんインストールし、実行すれば、HTA は他のプログラムができることは何でも実行できます。【HTA ソリューションの例】
HTA を使用することで、さまざまなアプリケーションを作成できます。ここでは、HTAが優れたソリューションとなり得る代表的なシナリオをいくつか紹介します。
- Web ページ アプリケーションの目的を変更
- Web ページから構築された既存のアプリケーションは簡単に変換でき、Windows アプリケーションを HTA として実行することができます。
HTA アプリケーションは、Web セキュリティ モデルとは独立に機能し、それ専用のユーザー インターフェイスを定義できます。
また、[スタート]メニューからそれを実行することができます。- HTML コンテンツを処理するアプリケーション
- HTA は、DHTML Object ModelによってHTML を効果的に処理できます。HTML の作成または編集、サイトのリンクの妥当性検査、コンテンツの比較などを行うアプリケーションは、HTA フレームワークを使ってごく簡単に作成できます。
- 企業内でのアプリケーションの配布にWebを使用
- HTA は、HTTP で配布されたコンテンツを基盤とし、キャッシュに格納できるので、接続された Web モデルの利点をすべて利用して HTA を展開できます。
従来のアプリケーション展開モデルで必要とされるインストール、更新、保守管理の手間はいっさい不要です。
HTA コンポーネントは中央のサーバーで更新されるので、クライアントは新しいものをシームレスにダウンロードし、導入することができます。- 簡単なアプリケーションの作成
- プログラミング言語を知らなくても、DHTMLやスクリプトを作成できれば、自分の使い慣れた Web オーサリング ツールで簡単なアプリケーションを手早く作成できます。
HTMLファイルを作成し、作成したHTMLファイルの拡張子.htmlを.htaに変更します。
通常の実行ファイルと同様にダブルクリックやショートカット等から実行可能です。
次のタグをHTMLのHEAD内に記述することにより、HTAの動作を変更することができます。
属性名 | 説明 | 値(太字はデフォルト) |
---|---|---|
id | 参照するときのid | 半角英数字 |
applicationname | アプリケーション名 | 半角英数字 |
version | バージョン数 | 数字 |
singleinstance | hta単一起動の可否(applicationname設定あり時のみ) | yes(単一起動)/ no(複数起動) |
showintaskbar | 最小化時タスクバーに納めるか | yes/ no |
navigable | リンク先のウインドウ表示 | yes(同一ウインドウ)/no(別ウィンドウ) |
windowstate | 起動時のウインドウ状態 | normal/ minimize/ maximize |
border | ボーダーの種類 | none/ thick/ thin/ dialog |
borderstyle | 枠のスタイル | normal/ complex/ raised/ static/ sunken |
innerborder | ボーダーの立体表示の有無 | yes/ no |
contextmenu | 右クリック時のコンテキストメニューの表示 | yes/ no |
selection | 内容選択の可否 | yes/ no |
scroll | スクロールバーの有無 | yes/ no |
scrollflat | スクロールバーの影(scrollがyesの場合のみ) | yes/ no |
caption | タイトルバー表示の有無(borderに依存) | yes/no |
sysmenu | システムメニューの表示(captionがyesの場合のみ) | yes/ no |
icon | アイコンファイルの指定(sysmenuがyesの場合のみ) | ファイルのパスを指定 |
maximizebutton | 最大化ボタンの有無(sysmenuがyesの場合のみ) | yes/ no |
minimizebutton | 最小化ボタンの有無(sysmenuがyesの場合のみ) | yes/ no |
HTAはあくまでもブラウザのJavaScriptで実行されるため、Wshのようなスリープは存在しません。 そのため、下記のようにWshで作成した汎用のSleep処理を作成し、呼び出して実行します。
var wsh = new ActiveXObject("WScript.Shell");
wsh.Run( "cscript sleep.vbs 5000",0,1);//5秒スリープ
Set wsh = CreateObject("WScript.Shell")
wsh.Run( "cscript sleep.vbs 5000",0,1)'5秒スリープ