Interested Article - HTML Application
- 2020-05-28
- 1
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
. Так как обычно в системных настройках
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
Примечания
- (англ.) — Microsoft .
- The Web Deployment Model //
-
Klaus Jochem.
(англ.)
.
This is Security :: by Stormshield
(20 августа 2014). — «Even if not documented, the actual
RunHTMLApplication
can be inferred from the call made by c:\windows\system32\mshta.exe (the application dedicated to launch an.hta
file)…» Дата обращения: 5 февраля 2019. 7 февраля 2019 года.
Ссылки
- Microsoft Corporation. (англ.) .
- 2020-05-28
- 1