
MicrosoftのInternet Explorer 5(IE5)は、 HTML Application(HTA)というスタンドアローンのアプリケーションを作成するための技術をサポートしています。 HTAはDHTMLを使って作成するアプリケーションで、 そのコードはウェブページを表現するHTMLドキュメントと全く同じように記述します。
HTAが通常のHTMLドキュメントと一つ違うのは、 HTMLドキュメントに存在するセキュリティ上の制約がHTAには無いということです。 クライアントマシンに置かれたHTAは、ウェブページでできる事に加えて、 ゾーンセキュリティの設定にかかわらず、 クライアントマシン上のファイルの読み書きやレジストリへのアクセス、Active Xコントロールの実行などを行なうことができます。
すなわちHTAは、EXEファイルのように実行できるHTMLドキュメントです。
HTAを作成する最も簡単な方法は、 ".html"や".htm"であるはずのHTMLドキュメントの拡張子を".hta"に変更することです。 たったこれだけでアプリケーションのできあがりです。 (実際には、スクリプトでさまざまな細工をしなければわざわざHTAにする意味は無い)
HTA:APPLICATIONタグとは、HTAのユーザインターフェイスの属性を制御するタグです。 HTAを作成する時にこのタグを記述することで、HTAの外観や振舞いの一部を変更することができます。 ここではこのタグについて少し説明します。
HTA:APPLICATIONタグはHTAファイルのHEAD要素に入れます。 Microsoftのリファレンスによると閉じタグが必要とのことですので 次のどちらかの方法で閉じてください。
<HTA:APPLICATION ... ></HTA:APPLICATION>
<HTA:APPLICATION ... />
タグの概要は以下の通りです。 属性名は全部大文字で書きましたが、大文字小文字どちらでも構いません。値のほうは確かめてません。 JScriptで各プロパティにアクセスするときは、 属性名の先頭以外の単語頭を大文字にしてプロパティ名とする必要があります(ex. showInTaskBar)。 またいずれのプロパティも読み出しだけができるようですので、 スクリプトでダイナミックに変更することはできません。
<HTA:APPLICATION
APPLICATIONNAME="value"
BORDER="thick" | "dialog" | "none" | "thin"
BORDERSTYLE="normal" | "complex" | "raised" | "static" | "sunken"
CAPTION="yes" | "no"
CONTEXTMENU="yes" | "no"
ICON="value"
ID="value"
INNERBORDER="yes" | "no"
MAXIMIZEBUTTON="yes" | "no"
MINIMIZEBUTTON="yes" | "no"
NAVIGABLE="no" | "yes"
SCROLL="yes" | "no" | "auto"
SCROLLFLAT="no" | "yes"
SELECTION="yes" | "no"
SHOWINTASKBAR="yes" | "no"
SINGLEINSTANCE="no" | "yes"
SYSMENU="yes" | "no"
VERSION="value"
WINDOWSTATE="normal" | "maximize" | "minimize" />
アプリケーションの名前を文字列で設定します。既定値はありません。
singleInstanceをyesに設定したときには識別に使用されるようです。
アプリケーションウィンドウのボーダーの種類を文字列で設定します。 設定可能な値はthick、dialog、none、thinのうちいずれか一つで、 既定値はthickです。
ウィンドウにタイトルバーが存在するときに有効になります。 noneを設定するとタイトルバーやプログラムアイコン、 最大化・最小化ボタンなどを表示しなくなります。 また、ウィンドウの大きさを変えることもできなくなるようです。 そういう時はアプリ内に終了するボタンを作るようにしなければなりません。
コンテントボーダーの種類を文字列で設定します。 設定可能な値はnormal、complex、raised、static、sunkenのうちいずれか一つで、 既定値はnormalです。
borderがアプリケーションウィンドウのスタイルを指定するのに対し、 borderStyleはウィンドウの中のコンテンツの周囲のボーダを指定するようです。
ウィンドウにタイトルバーを表示するかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(タイトルバーを表示する)です。
noを設定するとタイトルバーだけでなく、 プログラムアイコンや最大化・最小化ボタンなども表示しなくなりますが、 ウィンドウのリサイズ機能はそのまま残ります。 その場合アプリケーション内に終了するボタンなどを作らなければなりません。
HTA起動時のコマンドラインの引き数を保持しています。
HTAファイル自身のパス名も保持しているようです。 HTTP経由のときは空文字列だそうな。 このプロパティはタグの属性としては使いません。
マウスの右ボタンがクリックされたときにコンテキストメニューを表示するかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(メニューを表示する)です。
そのHTAのアイコンの名前と場所を設定します。 設定しなかった場合はシステムアプリケーションアイコンを使用するようです。 その場合スクリプトでプロパティを参照すると、空文字列が返るようです。
32x32の大きさの.ico形式のファイルの名前(パス)を指定します。
スクリプトでHTAオブジェクトにアクセスする際にはid属性を指定して識別します。
<HTA:APPLICATION ID="oHTA" ...> ... alert(oHTA.applicationName); ...
内側の3-Dボーダーを表示するかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(3-Dボーダーを表示する)です。

最大化ボタンを表示するかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(最大化ボタンを表示する)です。
最大化最小化ボタンを表示するにはウィンドウにタイトルバーが無ければなりません。
最小化ボタンを表示するかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(最大化ボタンを表示する)です。
最大化最小化ボタンを表示するにはウィンドウにタイトルバーが無ければなりません。
リンクされているドキュメントをHTAのメインウィンドウに読みこむか、 あるいは新しいブラウザウィンドウを開いてそこに読みこむかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はno(新しいブラウザウィンドウに読みこむ)です。
アプリケーションの一部ではないドキュメントを読みこむときには、 この属性をnoにして新しいウィンドウを開くか、 フレームによってセキュリティを確保しておくべきでしょう。
スクロールバーを表示するかどうかを設定します。 設定可能な値はyes、no、autoのうちいずれか一つで、 既定値はyes(スクロールバーを表示する)です。
autoに設定するとスクロールバーが自動的に表示されたり、 されなかったりするようですが、IE5.5ではyesとの違いがわかりませんでした。
スクロールバーを3-Dにするかフラットにするかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はno(3-Dで表示する)です。

ウィンドウの内容をマウスやキーボードで選択状態にできるようにするかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(選択できるようにする)です。
selectionをnoに設定しているとコンテキストメニューを表示しなくなります。 contextMenuの設定は効果を持ちません。
タスクバーにアプリケーションを表示するかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(タスクバーに表示する)です。
noを指定しても[Alt]+[Tab]の操作に影響はありません。
アプリケーションの複数起動を許容するかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はno(複数起動を許容する)です。
アプリケーションの識別にはapplicationNameの値が使われるようですので、 一緒に指定するようにしてください。
アプリケーションがシステムメニューを持つかどうかを設定します。 設定可能な値はyes、noのうちいずれか一つで、 既定値はyes(システムメニューを表示する)です。
システムメニューとは、 タイトルバーの左隅に表示されるアイコンをクリックすることで表示されるメニューのことです。 noを指定すると、アイコンだけでなく最大化・最小化ボタンなども表示しなくなりますが、 タイトルバーそのものは残ります。
アプリケーションのバージョンナンバーを設定します。 既定値はありません。
システムに対して何か特別な意味があるのかどうかはわかりません。
アプリケーションウィンドウの初期サイズを設定します。 設定可能な値はnormal、minimize、maximizeのうちいずれか一つで、 既定値はnormal(IEの既定サイズにする)です。
アプリケーション起動時の位置や大きさを細かく設定したい時は、 windowオブジェクトのmoveToメソッドやresizeToメソッドを使ってみてください。
| border | |||||
|---|---|---|---|---|---|
| thick | dialog | none | thin | ||
| borderStyle | normal | ![]() |
![]() |
![]() |
![]() |
| complex | ![]() |
![]() |
![]() |
![]() |
|
| raised | ![]() |
![]() |
![]() |
![]() |
|
| static | ![]() |
![]() |
![]() |
![]() |
|
| sunken | ![]() |
![]() |
![]() |
![]() |
|
って言うか、ここに書いてあることはみんな↓ここらへんに書いてあります。