| ||
HTML - приложенияАндрей Смынтына До сих пор о создании полноценных приложений, написанных при помощи скриптов, оставалось только мечтать. В лучшем случае создавались всевозможные bat-файлы, облегчающие рутинную повседневную работу. С появлением WSH появилась возможность создавать простые, в основном консольные программы. Потом нам позволили часто используемые подпрограммы и классы сохранять отдельно в виде компонентов. Дальнейшее развитие этого направления в программировании привело к появлению HTA-приложений. О том, что это такое, как создавать, использовать, и в чем преимущества HTA, будет рассказано в этой статье. Предполагается, что читатели знакомы с основами HTML и JavaScript. DHTML, Java Script, VBS c чем у вас ассоциируются эти слова? Более чем уверен, что большинство ответит: с web’ом. Ничего удивительного, все эти языки и разрабатывались для того, чтобы создавать гипертекстовые документы и снабжать их какой-то функциональностью. Они позволяют сделать практически все в пределах браузера, в котором отображается страница. Языки разметки отвечают за структуру этого документа, а скрипты делают этот самый документ интерактивным. При этом имеется возможность расширять функциональность этих языков за счет использования COM-объектов и ActiveX-элементов, то есть фактически они ограничены только набором компонент, установленных на компьютере пользователя. Такая мощь в связке с простотой использования… и при этом все ограничено возможностями браузера. Естественно, такой потенциал не мог не привлекать внимания разработчиков и вот, начиная с версии Internet Explorer 5.0 появилась возможность создавать HTML-приложения. Звучит интригующе, не так ли? Теперь с полной уверенностью можно сказать, что IE5 является платформой для разработки приложений. При помощи HTML создается абсолютно любой пользовательский интерфейс, причем с минимальными усилиями и без каких-либо существенных ограничений, благо CSS это позволяют. Естественно, код представлен на Java Script или VB Script. И это еще не все: мы наконец-то выбрались за рамки браузера, и ваше приложение на стадии выполнения ничем не будет отличаться от обычных приложений для Windows. Вы сможете его обнаружить в Task Manager, оно будет иметь свое собственное окно, меню и иконку. Плюс ко всему отпадает необходимость подтверждать использование ActiveX-компонентов (система защиты Internet Explorer предусматривает появление предупреждающих сообщений при попытке использования ActiveX в HTML-документах). То есть, как и в обычных приложениях, написанных на C++ или Pascal, вы имеете полный контроль над системой, включая свободное чтение/запись файлов, данных в реестре, управление процессами. И, что важно, из всех инструментальных средств вам понадобится только текстовый редактор. Чтобы убедиться, насколько просто создавать такие приложения, сделаем следующее: создадим обычный html-документ, сохраним его с расширением *.hta и запустим его на выполнение. Как видите, появившееся окно ничем не напоминает браузер, однако вы можете использовать такую возможность, например, как Refresh документа (в нашем случае это главное окно будущего приложения) или изменение кодировки на лету. Конечно, немного портит вид полоса прокрутки, но это легко исправляется добавлением SCROLL=no в тэг BODY, можно также воспользоваться специальными свойствами тэга HTA. Расширение .hta поясняет системе, как запускать данный файл. Будет произведен запуск программы mshta.exe, задача которой обеспечить связь вашей программы с браузером. Это еще не все для того чтобы полностью использовать новые возможности, необходимо включить тэг HTA:APPLICATION между тэгами HEAD. Простейший случай будет выглядеть так: Как видно из приведенного примера, в новом тэге мы определяем специфические для HTA параметры. Рассмотрим их подробнее. Интуитивно понятные параметры будут описаны вкратце. ID имеет то же функциональное значение, что и у всех HTML-тэгов т. е. позволяет обращаться к нему как к объекту в скриптах. Например: APPLICATIONNAME возвращает имя вашего приложения. Должно быть уникальным. BORDER позволяет задать тип окантовки окна. Доступны следующие значения: thick толстая рамка, позволяющая изменять размер окна; dialog обычная рамка без возможности изменять размер; none рамка отсутствует; thin тонкая без возможности изменять размер; Дополнительно указывается стиль рамки при помощи атрибута BORDERSTYLE, который может иметь следующие значения: normal обычная; raised приподнятая (3D); complex комбинация стилей raised и sunken; static может использоваться для окон, в которых не предусмотрен пользовательский ввод, к примеру, для создания «флэш»-окон; sunken вдавленная (3D). CAPTION определяет, будет ли окно отображаться с заголовком. Может принимать значения yes или no. ICON путь к файлу, содержащему иконку приложения. Это стандартный файл с расширением .ico, содержащий картинку 32х32 пикселя. Можно использовать в качестве иконки и обычный bmp-файл главное, чтобы соблюдались размеры картинки. SHOWINTASKBAR если это свойство имеет значение yes, окно будет сворачиваться в панель задач, а также отображаться в Task manager. SINGLEINSTANCE позволяет разрешить запуск только одной копии вашего приложения; для того чтобы определить, запущенно ваше приложение во второй раз или нет, это свойство использует APPLICATIONNAME. Может принимать значения yes/no. SYSMENU будет ли отображаться системное меню. WINDOWSTATE определяет, в каком виде приложение будет стартовать. Принимает следующие значения: normal обычное окно. minimize свернуто. maximize на весь экран. MAXIMIZEBUTTON и MINIMIZEBUTTON принимают значения yes/no и отвечают за отображение кнопок Maximize и Minimize соответственно в заголовке окна. Помимо атрибутов, характеризующих внешний вид программы, может быть задана версия продукта например, так: Для управления полосой прокрутки в окне HTA есть целых два параметра: SCROLL со значениями yes/no/auto и SCROLLFLAT yes/no. Если у вас установлен IE5.5, то вы можете воспользоваться дополнительным атрибутом NAVIGABLE, который позволяет переход по ссылке в окне HTA. Для управления текстом предусмотрен параметр SELECTION (yes/no). В дополнение ко всему перечисленному, вы можете иметь доступ к параметрам командной строки посредством свойства commandLine. Внимание, это свойство не имеет HTML-синтаксиса и может быть доступно только из скриптов! Немаловажно заметить, что все перечисленные параметры во время выполнения доступны только для чтения. Итак, курс молодого бойца завершен. Можно себя поздравить, выпить колы и приступить к написанию своего первого скриптового приложения. В таких случаях полагается писать так называемые «Hello-world» программы. У нас же в руках вся мощь компонентной архитектуры, поэтому для демонстрации минимума возможностей без особых усилий мы создадим простейший текстовый редактор. Константы для работы с диалогами открытия и сохранения файлов: CdlOFNFileMustExist пользователь может вводить только имя существующего файла, в противном случае возникнет предупреждение. CdlOFNHideReadOnly прячет опцию Hide Only (открыть только для чтения). Константы для работы с файлами: ForReading файл открывается для чтения; ForWriting для записи в файл. Создаем объект для доступа к файловой системе: И настраиваем общие свойства для диалога открытия и сохранения: Заголовок диалога: Фильтр, для отображения групп файлов. Вызываем диалог открытия и в случае если пользователь осуществил выбор пытаемся прочитать файл и отобразить его. Если вы правильно переписали вышеприведенный код, при запуске вы должны увидеть то, что изображено на рисунке. Естественно, дополнительными тэгами все вкусности скриптовых приложений не исчерпываются. Особую ценность представляет возможность повторного использования однажды написанного кода, создание универсальных компонентов, с которыми можно работать аналогично COM-компонентам. Об этом может быть рассказано в последующих статьях. Дополнительную информацию, а также примеры и некоторую документацию вы можете найти по следующим адресам: http://www.wshscripting.com открытый исходный код и множество примеров скриптов для WSH (Windows Scripting Host). http://cwashington.netreach.net множество часто используемых скриптов, а также информация, посвященная WMI (Windows Management Instrumentation), ADSI (Active Directory™ Service Interfaces) и вообще скриптам. http://home.att.net/~wshvbs утилиты для работы с WSH. Также стоит посетить http://www.serialscripter.com, где помимо бесплатных HTA-приложений, сопровождающихся подробными описаниями, находится неплохая подборка ссылок на ресурсы, тем или иным образом связанные со скриптовым программированием. Источник: http://www.mycomp.com.ua/
| ||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |