HTML Application

An HTML Application (HTA) is a Microsoft Windows program whose source code consists of HTML, Dynamic HTML, and one or more scripting languages supported by Internet Explorer, such as VBScript or JScript. The HTML is used to generate the user interface, and the scripting language is used for the program logic. An HTA executes without the constraints of the internet browser security model; in fact, it executes as a "fully trusted" application.

The usual file extension of an HTA is.

The ability to execute HTAs was introduced to Microsoft Windows in 1999, along with the release of Microsoft Internet Explorer 5.

Uses
HTAs give the developer the features of HTML together with the advantages of scripting languages. They are popular with Microsoft system administrators who use them for system administration tasks, such as user-forms and pre-written network queries, since, for example, VBScript and JScript can access the Windows Task Manager. In general, HTA's are said to be suitable for many purposes, from prototypes to "full-scale" applications, especially where flexibility and speed of development are critical..

Execution
An HTA is executed using the program, or, alternatively, double-clicking on the file. This program is typically installed when Internet Explorer is installed. executes the HTA by instantiating the Internet Explorer rendering engine (mshtml) as well as any required language engines (such as vbscript.dll).

An HTA is treated like any executable file with extension. When executed via mshta.exe (or the file icon is double-clicked), it runs immediately. When executed via the browser, the user is asked once, before the HTA is downloaded, whether or not to save or run the application; if saved, it can simply be run on demand after that.

Security considerations
When a regular HTML file is executed, the execution is confined to the security model of the web browser, that is, it is confined to communicating with the server, manipulating the page's object model (usually to validate forms and/or create interesting visual effects) and reading or writing cookies.

On the other hand, an HTA runs as a fully trusted application and therefore has more privileges than a normal HTML file; for example, an HTA can create, edit and remove files and registry entries. Although HTAs run in this 'trusted' environment, querying Active Directory can be subject to Internet Explorer Zone logic and associated error messages.

Functionality
To customize the appearance of an HTA, a new (optional) tag  was introduced to the   section. This tag exposes a set of attributes that enable control of border style, the program icon, etc., and provide information such as the argument (commandline) used to launch the HTA.

Otherwise, an HTA has the same format as an HTML page.

Development Tools
Any text editor can be used to create an HTA. Editors with special features for developing HTML applications may be obtained from Microsoft or from third-party sources.

An existing HTML file (with file extension  or , for example) can be changed to an HTA by simply changing the extension to.

Example
This is an example of Hello World as an HTML Application.

The code should be saved to a file with extension. Then  should be invoked with this file as argument. (Alternatively, the file can be double-clicked.) A window containing two buttons will be displayed as shown in the graphic. Clicking on the "vb" button will cause a VBScript subroutine to execute, showing the message "Hello, world!". Clicking on the "js" button will cause a JScript function to execute, showing a similar message.