HTML Application
| HTML Application (HTA) | |
|---|---|
| Расширение |
.hta[1] |
| MIME-тип | application/hta[2] |
| Разработчик | Microsoft |
| Тип формата | формат файла |
| Расширен из | .html |
| Сайт | msdn.microsoft.com/en-us… |
HTML Application (HTA) — приложение Microsoft Windows, являющееся документом HTML, отображаемым в отдельном окне без элементов интерфейса обозревателя таких как строка меню, строка адреса, панель инструментов («без браузерное приложение») с помощью движка Microsoft Internet Explorer. На HTA не распространяются большинство ограничений безопасности Internet Explorer, в частности на использование небезопасных элементов ActiveX. Например, HTA может создавать, изменять, удалять файлы и записи системного реестра Windows. Возможность создания HTA появилась с выпуском Microsoft Internet Explorer 5.0.
Так как HTA поддерживают исполнение сценариев, они могут являться носителем вредоносного кода.
Запуск HTA
Для запуска HTA предназначена программа mshta.exe, в свою очередь использующая недокументированную функцию RunHTMLApplication из библиотеки mshtml.dll[3]. Так как обычно в системных настройках mshta.exe сопоставлена расширению .hta, то для того, чтобы файл с документом HTML открывался как HTA, достаточно сохранить его с этим расширением.
Настройка поведения и внешнего вида окна HTA
Для настройки поведения и внешнего вида окна HTA введён нестандартный элемент разметки HTA:APPLICATION, который может быть расположен в разделе HEAD документа. Также для фреймов в HTA введён атрибут APPLICATION для задания того, распространяются ли на документ загруженный во фрейм права HTA или (по умолчанию) настройки безопасности Internet Explorer.
Атрибуты элемента HTA:APPLICATION и свойства связанного с ним объекта DOM
| Параметр | Обозначение | Значение(я) |
|---|---|---|
| applicationName | идентификатор исполнения HTA-документа | /* name */ |
| border | вид обрамления окна | thin, dialog, none, thick |
| borderStyle | стиль обрамления окна | complex, normal, raised, static, sunken |
| caption | наличие заголовка окна | yes/no |
| commandLine | командная строка, с которой было запущено приложение: путь к приложению и его аргументы (только свойство) | |
| 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 | невозможность открытия других окон с тем же значением applicationName | yes/no |
| sysMenu | наличие системного меню и кнопок управления окном в заголовке окна | yes/no |
| contextMenu | контекстное меню, вызываемое правой кнопкой мыши | yes/no |
| selection | разрешение выделения текста в HTA-окне | yes/no |
| version | версия HTA | /* version */ |
Примеры 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"
/>
<meta charset="utf-8">
</head>
<body>
<p>Текст страницы HTA-документа. Для выхода нажмите «Alt»+«F4»!</p>
</body>
</html>
Классический пример «Hello world!»
Пример классической программы, выводящей приветствие при нажатии на кнопку.
<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Test"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="maximize"
/>
</head>
<body>
<script type="text/VBScript" language="VBScript">
Sub TestSub
Msgbox "Hello, world!!!"
End Sub
</script>
<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>
<body style="font:14 pt arial; color:white; filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=1, StartColorStr='#000000', EndColorStr='#0000FF')">
<script type="text/VBScript" 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>
<p>Нажми на кнопку - получишь результат!</p>
<input type="button" value="Operating System" name="run_button" onClick="GetOSVersion()">
</body>
</html>
См. также
- XBAP (XAML Browser Application)
- XUL
- HTML Components
- Windows Script Host
- Electron
Примечания
- ↑ Introducing HTML Applications: DHTML Goes out of the Browser (англ.) — Microsoft.
- ↑ The Web Deployment Model // Introduction to HTML Applications (HTAs)
- ↑ Klaus Jochem. Poweliks – Command Line Confusion (англ.). This is Security :: by Stormshield (20 августа 2014). — «Even if not documented, the actual
RunHTMLApplicationcan be inferred from the call made by c:\windows\system32\mshta.exe (the application dedicated to launch an.htafile)…» Дата обращения: 5 февраля 2019. Архивировано 7 февраля 2019 года.
Ссылки
- Microsoft Corporation. Введение в HTML-приложения (Introduction to HTML Applications) (англ.).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.