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

Начиная с Internet Explorer 5.0 появилась возможность создавать HTML-приложения с любым пользовательским интерфейсом при помощи JavaScript или VBScript. Причем, созданное html-приложение будет запускаться вне браузера и ничем не будет отличаться от стандартных Windows-приложений.

Созданное приложение будет присутствовать на панели задач, иметь свое собственное окно, меню и значок. Плюс ко всему отпадает необходимость подтверждать использование ActiveX-компонентов (система защиты Internet Explorer предусматривает появление предупреждающих сообщений при попытке использования ActiveX в HTML-документах). Вы имеете полный контроль над системой, включая чтение/запись файлов, данных в реестре, управление процессами. Для создания такого приложения достаточно обычного Блокнота (или другой текстовый редактор).

Данные html-приложения должны иметь расширение *.hta. Простейший случай будет выглядеть так:

Создайте подобный файл и запустите его. Как видите, появившееся окно ничем не напоминает браузер, однако вы можете использовать такую возможность, например, как Refresh документа (в нашем случае это главное окно будущего приложения) или изменение кодировки на лету. Для удаления полосы прокрутки мы воспользовались параметром SCROLL=no в тэге BODY, можно также воспользоваться специальными свойствами тэга HTA.

HTA-файлы обрабатывается программой mshta.exe, задача которой - обеспечить связь вашей программы с браузером.

Для того чтобы полностью использовать новые возможности, необходимо включить тэг HTA:APPLICATION между тэгами HEAD.

Как видно из приведенного примера, в тэге HTA:APPLICATION мы определяем специфические для HTA параметры. Рассмотрим их подробнее.

Помимо атрибутов, характеризующих внешний вид программы, может быть задана версия продукта — например, так:

Для управления полосой прокрутки в окне HTA есть целых два параметра: SCROLL со значениями yes/no/auto и SCROLLFLAT — yes/no.

Если у вас установлен IE5.5, то вы можете воспользоваться дополнительным атрибутом NAVIGABLE, который позволяет переход по ссылке в окне HTA.

Для управления текстом предусмотрен параметр SELECTION (yes/no).

В дополнение ко всему перечисленному, вы можете иметь доступ к параметрам командной строки посредством свойства commandLine. Внимание, это свойство не имеет HTML-синтаксиса и может быть доступно только из скриптов! Немаловажно заметить, что все перечисленные параметры во время выполнения доступны только для чтения.

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

Константы для работы с диалогами открытия и сохранения файлов:

CdlOFNFileMustExist — пользователь может вводить только имя существующего файла, в противном случае возникнет предупреждение.

CdlOFNHideReadOnly — прячет опцию Hide Only (открыть только для чтения).

Константы для работы с файлами:

ForReading — файл открывается для чтения;

ForWriting — для записи в файл.

Создаем объект для доступа к файловой системе:

И настраиваем общие свойства для диалога открытия и сохранения:

Заголовок диалога:

Фильтр, для отображения групп файлов.

Вызываем диалог открытия и в случае если пользователь осуществил выбор пытаемся прочитать файл и отобразить его.

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

http://www.wshscripting.com/ — открытый исходный код и множество примеров скриптов для WSH (Windows Scripting Host).

Также стоит посетить http://www.serialscripter.com/, где помимо бесплатных HTA-приложений, сопровождающихся подробными описаниями, находится неплохая подборка ссылок на ресурсы, тем или иным образом связанные со скриптовым программированием.