HTML Application
HTML Application (HTA) — приложение Microsoft Windows, написанное на HTML или Dynamic HTML. Возможность создания HTA впервые возникла с появлением браузера Microsoft Internet Explorer 5.0.
HTA-документ (HTA-приложение) является HTML-документом со встроенными в заголовке атрибутами HTA (соответственно, имеет расширение .hta). Для настройки внешнего вида HTA введён новый тег <hta:application …>, который располагается в секции <head> … </head> документа HTA. Приложение HTA может быть сделано из обычного файла HTML сменой расширения на .hta.
Обычное приложение HTML ограничено моделью безопасности web-браузера, например, возможны взаимодействие с сервером, манипулирование объектной моделью страницы (обычно для проверки данных формы и/или создания интересующих визуальных эффектов) и чтение/запись файлов «куки» (англ. cookie).
В отличие от этого, HTA запускается, как полностью надёжное и безопасное приложение, и, следовательно, имеет больше привилегий в системе, чем обычная HTML-страница. Например, HTA может создавать/редактировать/удалять файлы и записи Системного реестра Windows. Т. к. HTA имеет больше привилегий, чем HTML-страница, такое приложение не может исполняться по протоколу HTTP. Вместо этого, файл HTA должен быть загружен (так же, как и EXE-файл) и исполнен в среде локальной системы.
Т. к. приложения HTA поддерживают исполнение сценариев, они могут являться носителем вредоносного кода и могут использоваться для создания червей, работающих через почтовые программы.
Атрибуты HTA
applicationName | идентификатор исполнения HTA-документа | /*name*/ |
---|---|---|
border | вид обрамления окна | thin, dialog, none, thick |
borderStyle | стиль обрамления окна | complex, normal, raised, static, sunken |
caption | наличие заголовка окна | yes/no |
icon | иконка заголовка, в формате ICO (32x32) | /*path*/ |
maximizeButton | наличие кнопки «восстановить» | yes/no |
minimizeButton | наличие кнопки «свернуть» | yes/no |
showInTaskbar | отображение документа в панели задач Windows | yes/no |
windowState | исходный размер окна | normal, minimize, и maximize |
innerBorder | внутренняя граница окна | yes/no |
navigable | определяет открытие ссылки в новом окне или родительском | yes/no |
scroll | наличие полосы прокрутки | yes/no |
scrollFlat | 3D-вид полосы прокрутки | yes/no |
singleInstance | возможность одновременного открытия нескольких окон | yes/no |
sysMenu | наличие системного меню и кнопок управления окном в заголовке окна | yes/no |
contextMenu | контекстное меню, вызываемое правой кнопкой мыши | yes/no |
selection | разрешение выделения текста в HTA-окне | yes/no |
version | версия HTA | /*version*/ |
Примеры HTA
Для тестирования примеров скопируйте код в текстовый файл с именем *.hta (например, test.hta) и запустите на выполнение (например, дважды щёлкнув по значку файла в Проводнике).
Простой статичный пример HTA
Приложение отображает статичное содержимое с установленными графическими атрибутами окна.
<html>
<head>
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="WMPTour"
BORDER="thin"
BORDERSTYLE="normal"
CAPTION="no"
maximizeButton="no"
minimizeButton="no"
ICON="img/wmptour.ico"
SHOWINTASKBAR="no"
SINGLEINSTANCE="yes"
SYSMENU="yes"
VERSION="1.0"
WINDOWSTATE="maximize">
</head>
<body>
Текст страницы HTA-документа. Для выхода нажмите «Alt»+«F4»!
</body>
</html>
Классический пример «Hello world!»
Пример классической программы, выводящей приветствие при нажатии на кнопку.
<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Test"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="maximize"
>
</head>
<script language="VBScript">
Sub TestSub
Msgbox "Hello, world!!!"
End Sub
</script>
<body>
<input type="button" value="Run Script" name="run_button" onClick="TestSub">
</body>
</html>
Пример взаимодействия с ОС Windows
Приложение отображает название и версию операционной системы.
<html>
<head>
<title>Operating System Version</title>
<HTA:APPLICATION
APPLICATIONNAME="Operating System Version"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>
<script language="VBScript">
Sub GetOSVersion
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Msgbox objOperatingSystem.Caption & " " & objOperatingSystem.Version
Next
End Sub
</script>
<body STYLE="font:14 pt arial; color:white;
filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=1, StartColorStr='#000000', EndColorStr='#0000FF')">
<p>"Нажми на кнопку - получишь результат!"</p>
<input type="button" value="Operating System" name="run_button" onClick="GetOSVersion">
</body>
</html>
Ссылки
- Введение в HTML-приложения (Introduction to HTML Applications) (англ.) (материал MSDN (рус.))
- Статья "HTML-приложения" .
- "HTML-приложения" для "непосвященных" – письма про HTML Applications.
См. также
Это заготовка статьи об информационных технологиях и вычислительной технике. Помогите Википедии, дополнив её. |