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
Примеры HTA
Простой статичный пример HTA
Приложение отображает статичное содержимое с установленными графическими атрибутами окна.
<html><head><HTA:APPLICATIONID="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"/><metacharset="utf-8">head><body><p>Текст страницы HTA-документа. Для выхода нажмите «Alt»+«F4»!p>body>html>Классический пример «Hello world!»
Пример классической программы, выводящей приветствие при нажатии на кнопку.
<html><head><title>HTA Testtitle><HTA:APPLICATIONAPPLICATIONNAME="HTA Test"SCROLL="yes"SINGLEINSTANCE="yes"WINDOWSTATE="maximize"/>head><body><scripttype="text/VBScript"language="VBScript"> Sub TestSub Msgbox "Hello, world!!!" End Sub script><inputtype="button"value="Run Script"name="run_button"onClick="TestSub()">body>html>Пример взаимодействия с ОС Windows
Приложение отображает название и версию операционной системы.
<html><head><title>Operating System Versiontitle><HTA:APPLICATIONAPPLICATIONNAME="Operating System Version"SCROLL="yes"SINGLEINSTANCE="yes"/>head><bodystyle="font:14 pt arial; color:white; filter:progid:DXImageTransform.Microsoft.Gradient (GradientType=1, StartColorStr='#000000', EndColorStr='#0000FF')"><scripttype="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><inputtype="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) (англ.).