Вивчаємо hta на прикладі

Скрипти в роботі

Спочатку я ставився до них, як до недоробленим мов програмування. Зараз я повністю змінив свою думку, так як з кожним разом скрипти допомагають мені вирішувати завдання.

Думаю, пам'ятайте * .bat файли в DOS. І іноді користуєтеся: запустити щось, скопіювати автоматом.

Я знав, що * .vbs, * .js - те ж саме, що і * .bat, але програмувати їх важче - потрібно знати або VBScript, або JScript. VBScript я освоїв швидко - на основі VBA для MS Office. І раптом виявилося, що я, не маючи встановленої оболонки програмування, можу робити програми та хоч в NotePad (Блокнот)! Вау! Прібалдел, чеснояё. Відразу ж зробив програму, що автоматизує деякі специфічні звіти, формує лист, що залишає логи.

Другим питанням, турбує мене, були діалоги. Хто пам'ятає INPUT, той знає, який це дитячий сад. А в діалогах ми і перемикачі маємо, і кнопки, і меню, і наочність. Почав розглядати скріптові можливості (а точніше, можливості підключення об'єктів) для конструювання форм - і нарвався на * .hta. Зрозумів, що це воно. Скрипти + html-подібну форму.

Перспективи HTA в моїй роботі.

HTA - HTML Applications. Той, хто знає можливості VBScript або JScript, розуміє, що основні конструкції і файлова система - у нас в руках. Той, хто знає ООП (об'єктно-орієнтоване програмування), розуміє, що управління Word-ом, Excel-му, багатьма іншими додатками - теж у нас в руках. І той, хто знає HTML (перевести?), Розуміє, що всю цю компанію ми можемо класно оформити і змусити орати. Ось що значить - HTA.

Після цього починаєш розуміти, що багато "утиліти" з www.freeware.ru - просто сміття.

Цією сторінкою я спробую аргументувати свою думку про те, що HTA - це інструмент, який допоможе заощадити час. Правда, при створенні витратиться теж чимало часу, але в цьому і є наше завдання - вміти визначати найбільш ефективні шляхи досягнення мети. Можна навіть сказати: "А хто швидше вирішить цю задачу?"

Давайте спробуємо це показати на прикладі скрипта, який би допоміг нам оцінювати загиджені наших дисків: які папки який обсяг пам'яті. Як в Total Commander при натисканні на ALT + SHIFT + ENTER.

Починаємо. І це буде версія 1.1.

Створюємо файл sizer.hta. Хто тільки починає: створимо текстовий документ, після чого його перейменуємо, підтвердивши Вінд зміна розширення.

Створимо структуру документа HTML. Щоб не описувати теги, пропоную скачати вже готовий файл і помилуватися в ньому Блокнотом.

Створюємо текстове поле для шляху папки. До зміни поля прив'язуємо процедуру малювання діаграми і відобразимо всі це графічно. Чим? Та чим завгодно. Можна таблицею, можна, наприклад, списком, маркованих.

Тир-р-р-ь-ям. Бенкет-р-р-ь-ям. Готово.

Оформлення.

Наприклад, наш елемент списку повинен показувати собою розмір. Шукаємо найбільшу папку - це будуть наші 100%. Решта - в процентному відношенні.

Розмальовки, то, се, - це кому як захочеться. Вид - будь-який, це ж HTML.

Примітка.

Продовжимо. І це - версія 1.2.

А я не такий працьовитий, щоб вписувати шляху! Перший століття на дворі. Тому доповнюємо скрипт навігацією.

Навігація.

Фахівцям: як, думаєте, зручніше буде - створити з поточного шляху список (як у вікнах відкриття / збереження) або складову посилання (як на www.filesearch.ru)? Або, може, а-ля Нортона? А давайте і те, і інше.

Тир-р-р-ь-ям. Бенкет-р-р-ь-ям. Пів дня. Готово.

Тепер зміна шляху в будь-якому місці змушує реагувати всі наші керуючі шляхом елементи. Адже це просто: елемент, який ми потривожили, в собі містить новий шлях (важко, чи що, внести в value шлях?), На основі якого і формуються елементи. Підсумок: можна вибрати папку зі списку, можна вписати шлях в рядок, можна клацнути на посилання папки (причому, перестрибуючи через рівні), і - родзинка: можна клацнути на графічне відображення папки, а можна вийти і на попередній рівень. Чим не Нортон?

Продовжимо. І це - версія 1.3.

Командна строка. Ось у чому питання. Тоді програма не відкриватиме з кореня C: і вважати нам тута. Отже, при відкритті додаємо перевірку, а чи немає у нас тут командного рядка з параметрами? Ну, якщо господар полінувався, то прорахуємо йому весь C. НЕ пошкодуємо. (Добре, добре - запустимо автопросчет тільки при наявності команди).

Продовжимо. І це - версія 1.4.

Тепер - дії.

Заради чого це все робилося? Заради того, щоб видаляти. Тут вже потрібні варіанти зручності, юзабельності. Поки поставлю виклик провідника (всього-то - оформити розмір як посилання: два байти переслати) - а що робити, поки нічого не вирішив? Ваші пропозиції ?

Показати результат?

Так давайте подивимося, що вийшло, який вид всього цього. Скріншот (знімок екрану) - важить багато, я вже краще змоделюють як HTML.

При натисканні на розмір відкривається Провідник.
  • .
  • 198.6 SYSTEM
  • 3.0 COMMAND
  • 24.0 INF
  • 9.0 HELP
  • 4.9 SYSTEM
  • 320.0 CURSORS
  • 11.0 JAVA
  • 10.5 FONTS
  • 0.2 WEB
  • 1.7 MEDIA
  • 0.3 CATROOT
  • 2.8 All Users
  • 2.1 TWAIN32
  • 5.5 MOTOROLA
  • 2.1 TWAIN_32
  • 124.0 TEMP
  • 19.1 SYSBCKUP
  • 3.5 APPLOG
  • 3.3 Temporary Internet Files
  • 58.6 Installer
  • 29.1 Cache
  • 80.8 Файли: C: \ WINDOWS

Це модель, а не реальний вигляд. Реальний вигляд можете подивитися вже у себе.

Перспективи програми.

а що, якщо додати картинки? На попередню папку - зелений гачок, сама папка - folder.ico. Фон вибрати.

а що, якщо зробити настройку? Наприклад, висота рядка, її колір, розмір шрифту. Мінімальний відображається розмір.

Всі ми розуміємо, що на навіщо воно потрібне. Зате - скрипт! Open Source! Захочемо - прикрасити, захочемо - додамо функцій. Люблю свободу, люблю свої сили.

Таки мене дістало. Скіни. І це - версія 1.5

Скіни - шкурки, в які ми одягаємо програму. І вона стає різнобарвною, що радує наш ламерскій очей. Вах-вах-вах!

Ідея полягає в наступному: всі оформлення програми виводимо в файл стилів - CSS (Cascading Style Sheets). А всередині ставимо перемикач, який складається з назв цих файлів.

Підсумок: кожен файл CSS вказує, які картинки де використовувати, які кольори. Зміна виду - відразу ж, не відходячи від каси, не виходячи з програми.

На шару я пошукав пару-другу текстур (вірніше, 15), розташував їх по різних теках (для порядку) і клонував 5 штук файлів CSS, різниця всередині яких - всього-то в імені папки.

Створення механізму перемикання зайняло близько години (до потрібного почитав ще парочку функцій для самоосвіти), підбір картинок - ще 30 хвилин. Подивився - самому сподобалося, відсотків на 80. Доводити стилі до кінця - так ну його. Все одно вони поки не запам'ятовуються (хоча стиль за замовчуванням можна задати всередині, в тезі LINK). Помилуйтеся.

Розмір файлу - 8 кіло. Але - обережніше, через цих п'яти стилів загальний розмір поважчав на 110 кіло - 15 картинок, все-таки.

Стилі - це взагалі: сила для оформлення. Якщо деякі елементи назвати унікальними іменами, то саме ці унікуми можна оформити по особливому. Наприклад, самі "жирні" папки відзначати інакше. Стривайте, ось зберуся - натикаєшся картинок до елементів!

І що, це - все? Ні. Підвищуємо продуктивність. І це - версія 1.6

Я користуюся Total Commander-му, а не Провідником. Спробувати б відкрити потрібну папку в ньому. Подивився help до тоталом, "вивчив" командний рядок, знайшов, що шукав. Використав метод Run об'єкта WSH Shell, ніж можна запускати все інше. Але зіткнувся з проблемою: а де шукати Total Commander? Є три варіанти: в Program Files, в c: \ TotCmd, або ще де (як у мене - в папці програм, які не потребують інсталяції). Інакше і не спрацює адже. Ну, тоді я вивів шлях на вибір користувача. При необхідності доведеться поки залізти всередину HTA і ручками поправити шлях (я залишив свій), а також і встановити програму, що запускається за замовчуванням при натисканні на посилання (параметр checked). Можна, напевно, і Far додати.

Працює. Розмір файлу - 9 кіло. (Не забувайте про 100 кіло скинув).

Звичайно, рішення грубувато. Самому не подобається. Лізти в файл, поправляти. А де шукати Total Commander? Хтось скаже? У реєстрі? Особисто у мене він працює з будь-якого місця, і в реєстрі цього "місця" немає.

Але не в цьому справа. Ви просто гляньте, що виходить з текстового файлу! Я користуюся Windows-ом з 96-го року, і тільки зараз, коли Windows 98 відкидає ковзани, я узна ю, що ще тоді в ньому був такий інструмент. (Правда, в 95-му його потрібно ще довантажувати).

А якщо я ще туди Flash-а накидав? А якщо - XML?

Схожі статті