ホーム > HTA


HTA:APPLICATIONタグ

HTAとは

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: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" />

属性 / プロパティ

APPLICATIONNAME / applicationName

アプリケーションの名前を文字列で設定します。既定値はありません。

singleInstanceyesに設定したときには識別に使用されるようです。

BORDER / border

アプリケーションウィンドウのボーダーの種類を文字列で設定します。 設定可能な値はthickdialognonethinのうちいずれか一つで、 既定値はthickです。

ウィンドウにタイトルバーが存在するときに有効になります。 noneを設定するとタイトルバーやプログラムアイコン、 最大化・最小化ボタンなどを表示しなくなります。 また、ウィンドウの大きさを変えることもできなくなるようです。 そういう時はアプリ内に終了するボタンを作るようにしなければなりません。

BORDERSTYLE / borderStyle

コンテントボーダーの種類を文字列で設定します。 設定可能な値はnormalcomplexraisedstaticsunkenのうちいずれか一つで、 既定値はnormalです。

borderがアプリケーションウィンドウのスタイルを指定するのに対し、 borderStyleはウィンドウの中のコンテンツの周囲のボーダを指定するようです。

CAPTION / caption

ウィンドウにタイトルバーを表示するかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(タイトルバーを表示する)です。

noを設定するとタイトルバーだけでなく、 プログラムアイコンや最大化・最小化ボタンなども表示しなくなりますが、 ウィンドウのリサイズ機能はそのまま残ります。 その場合アプリケーション内に終了するボタンなどを作らなければなりません。

* / commandLine

HTA起動時のコマンドラインの引き数を保持しています。

HTAファイル自身のパス名も保持しているようです。 HTTP経由のときは空文字列だそうな。 このプロパティはタグの属性としては使いません。

CONTEXTMENU / contextMenu

マウスの右ボタンがクリックされたときにコンテキストメニューを表示するかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(メニューを表示する)です。

ICON / icon

そのHTAのアイコンの名前と場所を設定します。 設定しなかった場合はシステムアプリケーションアイコンを使用するようです。 その場合スクリプトでプロパティを参照すると、空文字列が返るようです。

32x32の大きさの.ico形式のファイルの名前(パス)を指定します。

ID / id

スクリプトでHTAオブジェクトにアクセスする際にはid属性を指定して識別します。

<HTA:APPLICATION ID="oHTA" ...>
...
alert(oHTA.applicationName); 
...
INNERBORDER / innerBorder

内側の3-Dボーダーを表示するかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(3-Dボーダーを表示する)です。

MAXIMIZEBUTTON / maximizeButton

最大化ボタンを表示するかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(最大化ボタンを表示する)です。

最大化最小化ボタンを表示するにはウィンドウにタイトルバーが無ければなりません。

MINIMIZEBUTTON / minimizeButton

最小化ボタンを表示するかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(最大化ボタンを表示する)です。

最大化最小化ボタンを表示するにはウィンドウにタイトルバーが無ければなりません。

NAVIGABLE / navigable

リンクされているドキュメントをHTAのメインウィンドウに読みこむか、 あるいは新しいブラウザウィンドウを開いてそこに読みこむかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はno(新しいブラウザウィンドウに読みこむ)です。

アプリケーションの一部ではないドキュメントを読みこむときには、 この属性をnoにして新しいウィンドウを開くか、 フレームによってセキュリティを確保しておくべきでしょう。

SCROLL / scroll

スクロールバーを表示するかどうかを設定します。 設定可能な値はyesnoautoのうちいずれか一つで、 既定値はyes(スクロールバーを表示する)です。

autoに設定するとスクロールバーが自動的に表示されたり、 されなかったりするようですが、IE5.5ではyesとの違いがわかりませんでした。

SCROLLFLAT / scrollFlat

スクロールバーを3-Dにするかフラットにするかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はno(3-Dで表示する)です。

SELECTION / selection

ウィンドウの内容をマウスやキーボードで選択状態にできるようにするかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(選択できるようにする)です。

selectionnoに設定しているとコンテキストメニューを表示しなくなります。 contextMenuの設定は効果を持ちません。

SHOWINTASKBAR / showInTaskBar

タスクバーにアプリケーションを表示するかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(タスクバーに表示する)です。

noを指定しても[Alt]+[Tab]の操作に影響はありません。

SINGLEINSTANCE / singleInstance

アプリケーションの複数起動を許容するかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はno(複数起動を許容する)です。

アプリケーションの識別にはapplicationNameの値が使われるようですので、 一緒に指定するようにしてください。

SYSMENU / sysMenu

アプリケーションがシステムメニューを持つかどうかを設定します。 設定可能な値はyesnoのうちいずれか一つで、 既定値はyes(システムメニューを表示する)です。

システムメニューとは、 タイトルバーの左隅に表示されるアイコンをクリックすることで表示されるメニューのことです。 noを指定すると、アイコンだけでなく最大化・最小化ボタンなども表示しなくなりますが、 タイトルバーそのものは残ります。

VERSION / version

アプリケーションのバージョンナンバーを設定します。 既定値はありません。

システムに対して何か特別な意味があるのかどうかはわかりません。

WINDOWSTATE / windowState

アプリケーションウィンドウの初期サイズを設定します。 設定可能な値はnormalminimizemaximizeのうちいずれか一つで、 既定値はnormal(IEの既定サイズにする)です。

アプリケーション起動時の位置や大きさを細かく設定したい時は、 windowオブジェクトのmoveToメソッドやresizeToメソッドを使ってみてください。

BORDERとBORDERSTYLEの組み合わせサンプル

border
thickdialognonethin
borderStylenormal
complex
raised
static
sunken

詳細はこちら

って言うか、ここに書いてあることはみんな↓ここらへんに書いてあります。


ホーム > HTA

kia@geocities.co.jp