Секреты веб-интеграции Windows 9x

Любая работа влияет на человека — и порой в самых неожиданных ракурсах. Нередко это сводится к неравномерному развитию или деградированию его тела, интеллекта, сознания, или, если угодно — души. Так, например, очень заметно это у профессиональных теннисистов, у которых гипертрофированная рабочая рука иногда чуть ли не в два раза толще в обхвате, чем нерабочая. Но широко распространённые профессиональные заболевания — не самый критичный для судьбы человека вариант влияния тяжёлых или вредных условий труда. Слишком много в нашем мире занятий, воздействующих на человека менее заметно, чем физическое напряжение, но приводящих к более глубоким последствиям, когда на поверхность всплывают самые тёмные стороны личности — начиная от службы в ГИБДД и заканчивая министерскими портфелями. Помнится, в былые времена в нашей атеистической стране некоторые активные товарищи спорили — бытие определяет сознание или наоборот? Не знаю, помогло бы разрешение этого основополагающего вопроса гармоничному развитию человека, но сегодня мы, к сожалению, наблюдаем сплошные перекосы. Немного утрируя можно сказать, что «квартирный вопрос» (быт и работа) продолжает своё вредное воздействие на народонаселение. Добропорядочный гражданин, попавший в органы нашей родной власти вдруг становится махровым взяточником или казнокрадом; а любящая, заботливая мать, приходя на работу в захолустную нищую поликлинику, превращается в равнодушного и глухого к чужим проблемам врача. Раньше, кажется, самым ярким повседневным проявлением подобного влияния условий работы на сознание человека были продавцы совковых магазинов — их хамство и наплевательское отношение к покупателям стало благодатной почвой для анекдотов. Но всё меняется — вместе со сменой правил игры изменилось и поведение сегодняшних торговцев. И вот уже самым раздражающим фактором при общении с ними становится невероятная их навязчивость: «А что вы ищете?», «А чем я могу вам помочь?», «А что вам показать?». От подобной распугивающей покупателей «любезности» (читай — желания всучить хоть что-то) лично меня уже тошнит, и, заслышав первые звуки этих дежурных фраз, я еле сдерживаюсь. Видимо, никуда от этого не денешься…

Но даже самый, казалось бы, безобидный род занятий непременно воздействует на человека. Например, на моё сегодняшнее существование накладывает довольно заметный отпечаток специфика весьма напряжённой работы в Upgrade. Проявляется это в значительном сужении круга интересов — грубо говоря, вся жизнь вертится возле компьютера и всего, что с ним связано. Горы книг на полках — и ни одной художественной среди последних приобретений, сплошь компьютерная тематика. Приятели забыли, когда я появлялся последний раз на теннисном корте. Всё реже жене удаётся меня заманить в театры и кино. В результате — явственно наметившееся от сидячего (за клавиатурой) образа жизни брюшко и ощущение постепенного отупения. Кто-то сказал: «дилетант — тот, кто знает о многом по чуть-чуть, а профессионал — тот, кто знает много, но лишь об одном предмете». И ради чего, спрашивается? Нет, есть, наверное, исключения, когда высококлассный узкий специалист, абсолютно ничего не знающий об окружающем мире за пределами своих профессиональных интересов, остаётся личностью, притягивающей других людей. Но на ум мне приходит только выдуманный Шерлок Холмс. В реальности же такому влиянию поглощающей тебя целиком работы, надо сопротивляться изо всех сил, стараясь остаться разносторонне развитым человеком, не зацикливаясь на одном занятии, что, конечно, очень непросто.

Дисгармонию же я наблюдаю даже в своем поведении в Интернете — среди избранных сайтов сплошь компьютерные да справочные. Несколько сайтов электронных библиотек — лишь исключение, подтверждающее правило. Но зато такое погружение в предмет изучения приводит иногда к весьма забавным открытиям. Так, в Глобальной Сети огромное количество ресурсов, посвящённых операционным системам, а Windows, наверное, в этом отношении вообще вне конкуренции. Сайты, посвящённые этой системе, создают и начинающие любители, и профессионалы экстра-класса. Полезные советы, решение проблем, устранение «глюков», недокументированные настройки Windows — всё сегодня можно найти в Интернете. Порой из сайта в сайт мусолятся одни и те же прописные истины, а порой натыкаешься на такие глубокие исследования, что просто диву даёшься. Великое множество домашних веб-страничек и крутых сайтов посвящено и веб-дизайну, ещё одной популярной у современной молодёжи теме, а знатоков HTML не меньше, чем «любителей» Windows. Но среди этого моря статей по операционным системам и веб-дизайну я пока не встречал хоть сколько-нибудь серьёзного рассмотрения вопроса настройки так называемого веб-вида папок в окне Проводника Windows 9x. Дело в том, что дилетанту без приличного знания операционной системы, HTML, VBScript и JScript воспользоваться этим инструментом более чем затруднительно, поскольку основан он именно на Dynamic HTML. Да и документации от Microsoft по этому вопросу — минимум, а независимые профессиональные «системщики» и веб-дизайнеры как будто хором воды в рот набрали. А всё оттого, что каждый из них не видит дальше своей узкой области деятельности — большинство специалистов по ОС недостаточно обращают внимания на HTML, а веб-дизайнеры плохо знают и мало интересуются особенностями Windows. Негативное влияние узкого профессионализма привело к тому, что технология на стыке HTML и системного администрирования остаётся брошенной на произвол судьбы. А ведь оплёванная всеми, кому не лень, интеграция оболочки операционной системы с Internet Explorer — одно из самых замечательных свойств Windows, дающее в руки пользователя мощнейший инструмент настройки интерфейса ОС, и появилась она не вчера, а 3 года назад, когда вышел революционный IE4. Просто у её критиков всё это время не было желания вникнуть в особенности её использования и понять все преимущества, которые она даёт. Мне удалось найти всего несколько сайтов, на которых приводятся несколько устаревшие приёмы использования HTML-ориентированного интерфейса Windows:

Ну что ж, возможно я, всё-таки, ещё не совсем деградировал под тлетворным влиянием «глюков» Windows, а потому попробую по мере своих сил немного восполнить этот пробел.

Комментарий к папкам

Для начала в меню «Folder Options» — «General» — «Web View» («Свойства папок» — «Общие» — «Вид Веб») установите флажок «Enable web contents in folders» («Отображать папки как веб-страницы»), тем самым вы включите режим веб-интеграции. Хотя, скорее всего этот режим уже активирован. Запустив Проводник, вы увидите (если убрать дерево папок), что его окно состоит как бы из трех частей: большого поля со значками файлов и папок справа; графических элементов в верхнем левом углу; и информационной панели, расположенной в левой нижней части, на которой отображаются сведения о выбранных файлах. Это и есть исходное представление в виде веб-страницы, которое как обычный HTML-документ можно полностью преобразить, для чего в Windows предусмотрена специальная программа. Если в меню «View» («Вид») Проводника Windows Me вы выберете команду «Customize this folder» («Настроить вид папки»), то обнаружите почти неиспользуемый пользователями мастер настройки веб-вида папок. Отчасти невостребованность этой функции у юзеров связана именно с этим мастером — уж очень примитивные настройки он предлагает:

  • Choose or edit an HTML template for this folder — Создать или изменить HTML-шаблон для текущей папки
  • Modify background picture and filename appearance — Изменить фоновый рисунок и отображение имен файлов
  • Add folder comment — Добавить комментарий к папке

Также предусмотрено удаление всех пользовательских установок и возврат веб-вида к исходному варианту. В Windows 98 этот мастер ещё слабее, все шаблоны там сильно отличаются от шаблонов более проработанной Windows Me, а работает всё это хозяйство несколько хуже, чем в «Миллениуме», а потому оговоримся сразу — мы рассматриваем самую свежую на сегодняшний день версию ОС семейства 9x — Windows Me плюс Internet Explorer 6.0. Разумеется, по аналогии вполне можно поэкспериментировать и с Windows 98, да и в Windows 2000/XP многое сработает, но это я предоставлю нашим читателям в качестве домашнего задания.

Для чего же надо было городить такой огород? Какая польза в интеграции браузера и файлового менеджера, требующей немалых системных ресурсов? А вот представьте себе — имеется у вас на диске обширная коллекция музыки формата MP3. Вы аккуратно распределили всё по специальным папкам в соответствии со стилями, исполнителями, альбомами. Так вот, благодаря веб-виду можно, например, сделать так, что при наведении курсора на каждую такую папку в левой части Проводника, там, где располагается зона предпросмотра (или информационная панель), будет появляться изображение обложки компакт-диска, подобно тому, как отображается эскиз графического файла при выделении его мышью. Удобно и приятно. Делается это довольно легко с использованием такой функции веб-вида, как комментарий к папкам.

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

Итак, после того, как с помощью мастера вы добавили простейший комментарий к папке, например, ввели название исполнителя и альбома, который в ней размещается, откройте саму эту папку. Если у вас разрешено отображение скрытых и системных файлов, то вы обнаружите, что в ней появились служебный файл DESKTOP.INI и скрытая папка Folder Settings. В папке Folder Settings содержится пока единственный файл — Comment.htt. А в DESKTOP.INI мы видим строки:

[.ShellClassInfo]
HTMLInfoTipFile=file://Folder Settings\Comment.htt

которые, собственно, и говорят Проводнику, что для этой папки задан индивидуальный комментарий и описывают путь к файлу с ним. HTT-файлы придуманы Microsoft (расшифровывается «Hyper Text Template» — гипертекстовый шаблон) и являются практически обычными HTML-документами (различия с HTML мизерные — добавлено опознавание трёх переменных: %THISDIRPATH%, %THISDIRNAME%, %TEMPLATEDIR%), которые вполне можно отредактировать, если немного знать веб-дизайн или уметь работать с каким-нибудь HTML-редактором. Правда, визуальные редакторы типа Dreamweaver [8] (www.adobe.com/products/dreamweaver/) или FrontPage подходят для этого мало, поскольку в HTT-файлах содержатся в основном VBScript и JScript. Но в случае с Comment.htt, самым простым файлом-шаблоном, визуальный редактор вполне сгодится. Открыв этот файл, вы обнаружите примерно такой код:

<body style="background:infobackground; color:infotext; margin-top:1; font:menu">
Это мой комментарий к папке!
</body>

Как видите, всё примитивно, как лопата — примерно так звучал бы код нашего комментария, если бы мы делали HTML-документ, состоящий из одной-единственной фразы, только опущены некоторые обязательные для HTML-файлов теги. Но такая простота нас не устраивает и этот код надо заменить. Запустите теперь Dreamweaver или даже Блокнот, если с HTML вы общаетесь уже давно, и создайте в нём новый документ, в который поместите, например, изображение обложки альбома, его название или ещё какой-либо текст. Разумеется, выберите нужный шрифт, цвета, размер, то есть сделайте всё, что обычно происходит при составлении простейшей веб-странички. После этого измените содержание файла Comment.htt, переместив в него все, что прописалось между тегами «<body>» вашим HTML-редактором. Получится что-то типа этого:

<body bgcolor="#CCCCFF" text="#FF0000" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" scroll=no>
<p align="center">
<font color="#FF0000">
<b>Kraftwerk</b>
</font><br>
<img src="image.bmp">
</p>
</body>

Картинку с изображением обложки диска image.bmp, размером примерно 120х120 пикселей не забудьте поместить в папку Folder Settings. Если есть желание, то можно сделать даже анимированный GIF-файл на прозрачном фоне, чтобы изображение как бы медленно проявлялось на экране, что повергнет в трепет всех ваших знакомых «чайников». Теперь запускаем Проводник, наводим мышь на нашу папку и в левой части окна видим фотографию компакт-диска, треки с которого хранятся в этой папке. Лепота! Единственное, что удручает — горизонтальная полоса прокрутки в нижней части зоны предпросмотра. Дело в том, что по умолчанию веб-вид всех папок, для которых он специально не задан, расписан в файле C:\WINDOWS\WEB\FOLDER.HTT — в неё-то и имеет место быть то ли «бага», то ли «фича», приводящая к появлению на некоторых системах этой неприятной полосы прокрутки. Откройте файл C:\WINDOWS\WEB\FOLDER.HTT и найдите в самом его начале такую строку:

.Message {width: 100%; frameBorder: 0; background: infobackground; color: infotext; border: 1px solid lightgrey}

Это и есть параметры поля с комментарием. Измените параметр «width: 100%» на «width: 90%», и полоса прокрутки пропадёт, поскольку ширина этого поля немного уменьшится.

Конечно, любой, кто неплохо разбирается в HTML, сможет еще больше развить эту идею, вплоть до помещения в поле комментария всяческих JAVA-скриптов, кнопок, анимации и прочей атрибутики, я же показал самый простой пример использования самой простой функции интеграции Internet Explorer с операционной системой, применить который на практике под силу почти каждому — изменения требуют лишь несколько строк HTML-кода.

Фон папок

Но пойдём дальше. Следующая опция мастера настройки веб-вида папок — изменение фонового рисунка и цвета шрифта названий файлов. Благодаря все той же веб-интеграции, для любой папки можно назначить фоновый рисунок точно так же, как для любой веб-странички. И естественно, чтобы рисунок этот удачно ложился в окно Проводника, нужно чтобы он был сопоставим по размерам с этим окном, иначе несколько раз повторяющаяся в окне Проводника картинка будет выглядеть не самым эстетичным образом. Но лучше использовать текстуру, то есть маленькую картинку, которая, будучи размноженной и многократно уложенной подобно черепице, создаст нейтральный фон, на котором не будет заметно стыков между фрагментами этой мозаики. То есть мы опять имеем почти полное соответствие принципам обычного веб-дизайна. И, как в веб-дизайне, для создания такого фона подойдут специальные программы типа TeraLogic Texture Maker [9], которая умеет делать «черепички» фона, укладывающиеся на страничку без видимых швов и образующих равномерное покрытие. Но самое простое — одноцветный фон. Для его создания достаточно простейшего графического редактора Paint — сделайте в нем небольшую однотонную квадратную картинку размером порядка 100х100 пикселей, расцветка которой должна соответствовать вашем замыслам. Например, для папки с музыкой Бориса Моисеева вполне подойдет квадрат голубого цвета. Поместите эту картинку в директорию Folder Settings и запустите снова мастер настройки веб-вида папок, в котором в качестве фонового изображения укажите вашу текстуру и задайте цвета для шрифта, которым отображаются названия файлов, чтобы они были хорошо читаемы на цветном фоне. Цвет надо задать и для подложки названий файлов — он должен быть таким же, как и фон странички, чтобы под названиями не было некрасивых прямоугольников. В результате в файле DESKTOP.INI появятся новые параметры:

IconArea_Image=Folder Settings\Background.bmp
IconArea_Text=0x00800000
IconArea_TextBackground=0x0000FFFF

К сожалению, большего из настройки фона не вытянешь, и кроме этих трех параметров на данном этапе ничего полезного изменить нельзя.

Опять запускаем Проводник и смотрим, что же получилось. И опять видим, что функция эта сделана явно на скорую руку — фон зоны предпросмотра, в отличие от панели со значками файлов не изменился, а остался все таким же не вписывающимся в общую картину белым пятном, что в корне портит весь замысел. К счастью, цвет этот тоже можно изменить вручную, но для этого нам надо перейти к самой сложной и интересной части наших экспериментов, а именно — к редактированию внешнего вида информационной панели.

Фон панели предпросмотра

Основное назначение информационной панели, расположенной в левой части окна Проводника — это, конечно же, вывод сведений о выбранном файле, а для некоторых типов файлов — ещё и маленьких эскизов, позволяющих получить представление о содержимом файла. По умолчанию в Windows выводятся миниатюры графических и HTML-файлов. Для того, чтобы изменить внешний вид этой панели или расширить число отображаемых в виде маленьких «превьюшек» типов файлов снова воспользуемся мастером настройки веб-вида, в котором теперь отметим пункт «Создать или изменить HTML-шаблон». К сожалению, Microsoft почему-то не довела до удовлетворительного состояния и этот раздел — пользователю предлагается всего лишь четыре типа готовых шаблонов, из которых наибольший интерес представляет Image Preview, предназначенный для папок с графикой. Собственно, работу этого шаблона вы можете наблюдать на примере папки «My Pictures». Поэтому опять придётся всё делать вручную. Выбираем для нашей экспериментальной папки стандартный шаблон («Standard») и ставим в мастере флажок «I want to edit this template» («Отредактировать шаблон»). Открывается Блокнот с HTML-кодом шаблона. Закрываем его ко всем чертям без всяких изменений. В данном случае редактировать этот шаблон в Блокноте, конечно, можно, но, во-первых, это неудобно — HTML-теги желательно бы иметь выделенными разными цветами, а строки пронумерованными, как это происходит, например, в мощных редакторах типа UltraEdit [10]. А во-вторых, стандартный шаблон довольно велик, и на каком-то этапе Блокноту просто не хватит памяти, и он не сможет сохранить все ваши труды. Главная же функция проделанной операции и вызова Блокнота — создание в папке Folder Settings нового файла — FOLDER.HTT с шаблоном дизайна веб-вида папки, который мы уже спокойненько открываем в любом специализированном редакторе (но не визуальном!) и приступаем к созданию нашего шедевра. В крайнем случае, откройте этот файл в Wordpad. Кстати, файл DESKTOP.INI вновь изменился — теперь в нём добавились строки, указывающие, что для нашей папки создан индивидуальный шаблон, и задающие путь к нему. Плюс в папку Folder Settings оказались скопированы несколько графических файлов, отвечающих за оформление Проводника.

Мы остановились в предыдущей главе на том, что нужно изменить цвет панели предпросмотра. Находим в файле FOLDER.HTT строку:

<div id=Panel style="background: white URL(wvleft.bmp) no-repeat left top">

— она должна располагаться почти в самом конце файла. Измените «White» на тот цвет, который вы ранее установили для фона папки, например, на «Blue» или введите любой другой цвет в том виде, как это принято в веб-дизайне, например, «#FFFF00» для жёлтого цвета или «#4040FF» для голубого (для того, чтобы узнать, какой код у какого цвета, удобно использовать продвинутый графический редактор типа Jasc PaintShop Pro, но, думаю, вы без особого труда найдёте и другие программы, умеющие выражать цвета в любом из стандартов) и получите полностью однотонное окно Проводника без неприятного белого поля предпросмотра.

Но если вы обратите внимание на верхний левый угол Проводника, то увидите, что картинка, на фоне которой расположен значок папки, изменилась — вместо «миллениумовских» цветных квадратов оказались какие-то неказистые облака. Дело в том, что программеры Microsoft, по-видимому, недоглядели и допустили маленькую ошибку — в «дефолтном» файле C:\WINDOWS\WEB\FOLDER.HTT (который, как я уже говорил, применяется по умолчанию для папок, вид которых не настроен индивидуально) в строке

<div id=Panel style="background: window URL(wvleft.gif) no-repeat left top">

прописано использование для этого изображения файла wvleft.gif, а в стандартном шаблоне (файл STANDARD.HTT), которым мы воспользовались, на его месте уже почему-то оказался wvleft.bmp — совсем другой файл. Поэтому вам следует либо отредактировать по своему усмотрению файл wvleft.bmp, так, чтобы он соответствовал всему вашему глобальному замыслу (например, фотографию исполнителя вместо дурных облаков вставить), либо исправить опечатку в редактируемом нами FOLDER.HTT, чтобы использовался стандартный для всех других папок файл wvleft.gif. Разумеется, при этом wvleft.gif надо скопировать из C:\WINDOWS\WEB\ в папку Folder Settings (впрочем, сохранять исходное название этого файла необязательно — надо только чтобы в FOLDER.HTT он был прописан верно). Точно так же очень легко изменить или убрать цветную полоску, которая подчеркивает имя папки на информационной панели — достаточно либо отредактировать файл wvline.gif из папки Folder Settings в графическом редакторе, сделав эту полоску, например, анимированной, либо изменить строку

<img id=LogoLine src="wvline.gif">

в файле FOLDER.HTT, так, чтобы использовался другой файл. В принципе, можно в этот угол добавлять и другие элементы, например третью картинку или ссылку на веб-сайт — для этого достаточно рядом со строкой

<img id=LogoLine src="wvline.gif">

внести нужные изменения, но это оставим на ваше усмотрение — эксперименируйте. Желательно только, чтобы эти графические элементы были в формате «прозрачный» GIF, дабы избежать цветовых нестыковок с фоном инфо-панели. Таким образом, мы получили оригинальный и неповторимый внешний вид папки с музыкой любимой группы. Давайте же теперь просмотрим весь файл FOLDER.HTT чтобы понять, что же ещё можно в нём изменить.

Предпросмотр медиа-клипов

В действительности, в стандартный шаблон заложен предварительный просмотр не только графических файлов и веб-страничек. Точно так же можно выводить и «превьюшки» видеоклипов или звуковых файлов — при этом на информационной панели появляется уменьшенный вариант всем знакомого «виндового» Media Player шестой версии. Но всё дело в том, что функция эта изначально отключена, поскольку её включение создаёт небольшую проблему с удалением файлов. При попытке подхватить файл с видеоклипом мышкой для перетаскивания в Корзину, он одновременно открывался в проигрывателе и становился автоматически заблокированным — открытый файл удалить становилось невозможно. Вот если выделить два файла — то удаляй сколько хочешь, а один — никак, либо используй другой файловый менеджер, который не направляет клип в проигрыватель при его выделении. Но так было вплоть до выхода седьмой версии Windows Media Player. При его использовании эта функция в Windows Me полностью работает и не создаёт никаких проблем при удалении файлов! Так что держать её заблокированной нет более никакого смысла, поскольку работать с мультимедийными файлами, автоматически отображающимися прямо в окне Проводника, чрезвычайно удобно.

Для включения этого режима внутри нашей папки с музыкой найдите в файле FOLDER.HTT (напомню, мы используем стандартный шаблон!) строки, которые обеспечивают распознавание типов мультимедийных файлов:

function IsMovieFile(ext) {
// disabled
return false;
var types = ",asf,avi,wmv,wvx,m1v,mov,mp2,mpa,mpe,mpeg,mpg,mpv2,qt,asx,";

и

function IsSoundFile(ext) {
// disabled
return false;
var types = ",aif,aiff,au,mid,midi,rmi,snd,wav,mp3,m3u,wma,";

Перед словами «return false» нужно установить два слеша (закомментировать их): «//return false;», либо вообще удалить эти две строки — это разблокирует предпросмотр клипов. Можете сразу после сохранения изменений это проверить — на информационной панели будет появляться небольшой проигрыватель при выделении любого файла, расширение которого совпадает с теми, что перечислены в вышеобозначенных строках. При этом для звуковых файлов будет выводиться усечённый вариант плеера — без дисплея. Ничто не мешает внести в этот список и новые типы файлов, главное чтобы у вас были установлены соответствующие кодеки, расширяющие возможности стандартного проигрывателя. В этом случае вы, вероятно, получите приблизительно такие строки:

var types = ",asf,avi,wmv,wm,wvx,wmx,wmp,m1v,mov,mp2,mpa,mpe,mpeg,mpg,mpv2,qt,asx,qm,ivf";

для видео файлов и

var types = ",aif,aifc,aiff,au,mid,midi,rmi,snd,wav,mp3,m3u,wma,wax,cda";

— для звуковых.

Но простым включением предварительного просмотра клипов дело не ограничивается, поскольку потенциал у этой технологии не исчерпывается уже готовым стандартным шаблоном. Реализована эта функция с помощью так называемых элементов управления ActiveX (ActiveX Control), вносимых в HTML-документ с помощью тегов <object>. Программистам работа с ними должна быть хорошо знакома, простым же пользователям скажу, что за ActiveX отвечают файлы с расширением OCX, конкретно же за внедрение MediaPlayer 6 в HTML-документ — файл msdxm.ocx, а за WMP7 — wmp.ocx. А потому ничто не мешает ещё сильнее отойти от заданного Microsoft шаблона и заменить, например Media Player 6 на более продвинутый и симпатичный Windows Media Player 7.1, поскольку он тоже поддерживает внедрение в HTML-документ. Этот проигрыватель, как я уже отмечал, не затрудняет удаление файлов. Давайте сделаем так, чтобы видео-клипы открывались в Windows Media Player 7.1. Для этого найдите во все том же шаблоне FOLDER.HTT следующие строки:

Preview.innerHTML = '<p>' +
'<object ID=MediaPlayer class=Movie classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95">' +
'<param name="ShowDisplay" value=false>'+
'<param name="AutoPlay" value="false">' +
'</object>';
MediaPlayer.EnableContextMenu = false;
MediaPlayer.Open(item.Path);

Это полное описание используемого для вывода видео элемента ActiveX, имеющего идентификатор (CLSID) 22D6F312-B0F6-11D0-94AB-0080C74C7E95, то есть — Media Player 6. Чтобы вместо него оказался проигрыватель седьмой версии, надо сменить этот идентификатор на 6BF52A52-394A-11d3-B153-00C04F79FAA6, принадлежащий WMP7. Но этого мало. Дело в том, что у различных элементов ActiveX различаются и параметры, например, по другому передаётся в проигрыватель путь к выбранному файлу (метод «.Open» в MP6 и метод «.URL» в WMP7), поэтому придётся переписать весь этот участок кода:

Preview.innerHTML = '<p>' +
'<object ID=MediaPlayer7 classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="176" height="167">' +
'<param name="AutoStart" value="false">' +
'</object>';
MediaPlayer7.EnableContextMenu = false;
MediaPlayer7.URL = (item.Path);

Как видите, здесь, помимо изменения некоторых параметров, задаётся ещё и размер окна проигрывателя, чтобы он лучше выглядел в зоне предпросмотра. Аналогично устанавливается прослушивание и аудиофайлов через WMP7. Единственное, что нужно для работы с ActiveX — иметь под рукой документацию со всеми их параметрами. В случае с WMP7, вы найдёте её на сайте Microsoft: msdn.microsoft.com/library/en-us/wmplay/mmp_sdk/playercontrolguide.asp [11].

Технология веб-интеграции позволяет вносить в Проводник очень серьёзные изменения, вплоть до встраивания в Windows проигрывателей сторонних разработчиков для воспроизведения файлов, которые не понимает WMP. Например, можно сделать так, чтобы файлы RealMedia открывал в зоне предпросмотра очень популярный RealPlayer. Сделать это, правда, посложнее, чем в случае с WMP, из-за особенностей этого проигрывателя, и код получится несколько больше. Сначала, для того, чтобы система распознавала файлы RealPlayer, надо после блока «function IsSoundFile(ext)» вставить новую аналогичную функцию со списком расширений (следите за правильной расстановкой фигурных скобок):

function IsRealFile(ext) {
var types = ",ra,rm,viv,ram,rmm,rmd,swf,smi,smil,rt,rp,";
var temp = ","+ext+",";
return types.indexOf(temp) > -1;
}

Затем рядом с уже имеющимися объектами MediaPlayer7 и MediaPlayer (после них — по аналогии) нужно вставить ещё один объект — RealPlayer, вернее, даже два объекта, потому что для этого проигрывателя отдельно идёт дисплей, а отдельно — панель управления:

else if (IsRealFile(ext))
{
Preview.innerHTML = '<p>' +
'<OBJECT ID=RealPlayer class=Movie CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA">'+
'<PARAM NAME="CONTROLS" VALUE="ImageWindow">'+
'<PARAM NAME="MAINTAINASPECT" VALUE="true">'+
'<PARAM NAME="NoLogo" VALUE="true">'+
'<param name="Console" value="Real">'+
'</OBJECT> '+
'<OBJECT ID=RealPlayerCP CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="176" height="31">'+
'<PARAM NAME="CONTROLS" VALUE="ControlPanel">'+
'<param name="Console" value="Real">'+
'</OBJECT> ';
RealPlayer.Source = (item.Path);
}

Описывать, что какая строка обозначает, вряд ли есть смысл — со всеми многочисленными параметрами RealPlayer как элемента ActiveX вы ознакомитесь на сайте http://service.real.com/help/library/guides/extend/htmfiles/activex.htm [12]. Тот же код, что я привожу, вполне достаточен и работоспособен с последними версиями проигрывателя. Разумеется, необходимо чтобы RealPlayer был установлен в вашей системе.

Ограничение доступа к папкам

Многие пользователи имеют на жёстком диске какие-либо личные документы, случайный или намеренный доступ к которым посторонних был бы, по меньшей мере, крайне неприятен. Причём всё это особенно касается других членов семьи пользователя, вплоть до кошек и собак, обычно сующих свой нос во все на свете, стоит только немного потерять бдительность. Бесспорно, если вы хотите иметь чёткие гарантии, что никто ни дома, ни на работе не сможет вторгнуться в вашу privacy и прочитать любовную переписку, передать бухгалтерские документы в соответствующие органы или узнать, какие сайты вас больше всего привлекают в Интернете, то придётся шифровать диск специальными программами. Процедура эта, в принципе, не самая приятная — и ресурсы процессора при расшифровке «на лету» расходуются немалые, и есть риск пароль длиннющий забыть, и в случае сбоя на диске имеется вероятность потерять всю столь старательно скрытую от чужих глаз информацию. Но если надо защитить папку с не самыми критичными документами от ненамеренного проникновения в неё малолетнего спиногрыза или тренирующейся в удалении файлов жены, и вы много не потеряете, если дитё всё-таки догадается, как взломать все преграды (это, кстати, неплохой стимул для его самообразования — запретный плод и всё такое, а уж жена-то точно не догадается), то можно поступить гораздо проще: использовать преимущества, которые даёт незаслуженно игнорируемая веб-интеграция. В качестве примера опять используем нашу папку с музыкой — в файл FOLDER.HTT сразу перед строкой

<body scroll=no onload=Load()>

добавьте следующий примитивный код:

<script language="vbscript">
par=inputbox ("Please, enter the password", "Login")
if PAR="" then
par=0
end if
if asc(par)>57 then
par=asc(par)
end if
if par=12345 then
pass
else
err
end if
sub err
msgbox "Access Denied!"
NAVIGATE "C:"
End Sub
sub pass
msgbox "Welcome!"
End Sub
</script>

Готово. Теперь, не зная пароля (который прописан прямо в этом коде: 12345), попасть в данную директорию будет несколько затруднительно — в случае ошибки вместо неё откроется диск С:. Впрочем, многого это этого скрипта не ждите — для других файловых менеджеров он, как и все остальные настройки веб-вида, никакого значения не имеет, как и для других программ, способных осуществлять навигацию по папкам. К тому же он не предохранит от прямого доступа в поддиректории, например в ту же самую папку Folder Settings, в которой без труда можно обнаружить наш пароль. Так что грамотный пользователь такую защиту обойдет минуты за две, но как защита от «дурака» и прочих неприятностей он вполне годится, да и написать более серьёзный скрипт вам ничто не мешает. Главное, что для такого трюка не требуется никаких программ — только две минуты свободного времени на настройку веб-вида!

Разная мелочёвка

Если вы пробежитесь с помощью Проводника по разным папкам, то заметите ещё одну небольшую, но приятную функцию веб-вида — отображение ссылок на часто используемые ресурсы прямо в информационной панели. Обычно это ссылки на папки My Documents, My Network Places и My Computer. Причём, ссылки эти динамические и при выделении курсором какого-либо файла они пропадают, чтобы освободить пространство для «превьюшки» файла. Стоит же щелкнуть мышью на пустом месте для того, чтобы снять выделение файла, как ссылки эти снова восстанавливаются. К сожалению, при использовании стандартного шаблона вы теряете возможность пользоваться этой удобной функцией — она почему-то из него исключена. Но очень легко сделать так, чтобы на информационной панели постоянно присутствовали статические ссылки на самые востребованные папки или веб-сайты. Найдите в самом конце файла FOLDER.HTT такие строки:

<span id=Info>
%THISDIRPATH%
</span>

сразу после них вставьте:

<p>
<class=Links>
<a href="http://upgrade.computery.ru">Upgrade</a>
<p>
<br>

и в нашей экспериментальной папке вы увидите ссылку на сайт журнала Upgrade. Точно так же добавляются и ссылки на локальные папки и диски (<a href=C:>Диск С:</a>). Оформить эти ссылки можно как угодно, даже поместить в таблицу — опять с помощью HTML. В принципе, можно вернуть и динамические ссылки, но описание этой процедуры сюда уже не поместится, поэтому я предлагаю вам получить уже готовый мой собственный шаблон (FOLDER.HTT [13]), в котором помимо динамических ссылок и парольной защиты имеют место быть и все остальные описанные здесь функции — включён предпросмотр медиа-клипов, видео и аудио воспроизводится в WMP7, а файлы RealMedia — в RealPlayer. Единственное ограничение у этого шаблона заключается в том, что в папке, настроенной с его помощью, не отображаются комментарии, о которых шла речь в самом начале статьи. Так что на досуге можете заняться этим вопросом. Читайте также мои заметки внутри этого шаблона — возможно, я ещё внесу туда какие-то изменения.

Впрочем, существует немало и других возможностей дать разгуляться фантазии при редактировании шаблона FOLDER.HTT. В частности, в самом начале этого файла после строки

// THIS SCRIPT IS COMMON FOR ALL CUSTOM WEB VIEWS

идёт список переменных, среди которых нетрудно заметить и строковые, являющиеся, по сути, тем текстом, который отображается на информационной панели в различных ситуациях. Например, при открытии какой-либо папки в верхней части информационной панели появляется строка: «Select an item to view its description.», приглашающая выбрать какой-либо файл. Если у вас есть чувство юмора, то можно изменить значение отвечающей за эту строку переменной «var L_Prompt_Text» так, чтобы вместо нейтрального приглашения выводилось что-нибудь смешное.

Но больше всего параметров, над которыми допускается поэкспериментировать, расположено чуть выше — сразу после строк

</head>
<style>

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

#Panel {position: absolute; width: 200px; height: 100%; visibility: hidden}

значение параметра «width». Все остальные строки этого раздела тоже более-менее понятны и, например, ясно, что шрифт, которым выводится название папки, описан в строке «#FolderName», размер видео-проигрывателя — в «.Movie», размеры миниатюр графических файлов — в «#Thumbnail» и так далее. На больших мониторах будет полезно вместе с инфо-панелью увеличить и размер эскизов.

Как видите, если хорошенько разобраться с веб-видом папок, то зайти можно очень далеко… Ничто, например, не запрещает применить фреймы внутри окна Проводника! Просто надо сделать обычную веб-страничку с несколькими фреймами, назвать её FOLDER.HTT, а в одном из фреймов задать отображение документа, содержание которого идентично исходному шаблону STANDARD.HTT — в нём и будут производиться операции с файлами. В остальные же фреймы вставляйте все, что душе угодно — кнопки, скрипты, бегущие строки, графику, анимацию — всё, что как-то может быть вам полезно.

Если же вы хотите, чтобы изменения коснулись абсолютно всех папок на диске, то измените сам глобальный файл C:\WINDOWS\WEB\FOLDER.HTT, предварительно сделав его резервную копию. В этой же папке вы найдёте и другие системные шаблоны, применяющиеся для настройки внешнего вида и оформления отдельных системных папок, несколько графических изображений, используемых в этих шаблонах, а также те самые четыре предустановленных шаблона, что предлагает мастер настройки веб-вида:

  • brfcase.htt — задаёт внешний вид папки «Портфель»;
  • classic.htt — шаблон «Классический»;
  • controlp.htt — отвечает за оформление папки «Панель Управления»;
  • default.htt — «Temporary Internet Files» , «Downloaded Program Files» , «Subscriptions» , «History»;
  • deskmovr.htt — отвечает за Активный Рабочий Стол;
  • dialup.htt — «Удаленный Доступ к Сети»;
  • folder.htt — глобальный файл — отвечает за оформление всех обычных папок Windows;
  • fsresult.htt — поиск файлов;
  • ftp.htt — обзор FTP-сервера;
  • imgview.htt — папка My Pictures;
  • nethood.htt — «Сетевое окружение»;
  • printers.htt — «Принтеры»;
  • recycle.htt — «Корзина»;
  • safemode.htt — отвечает за оформление Активного Рабочего Стола в случае сбоя оболочки Windows;
  • shedule.htt — «Назначенные Задания»;
  • standard.htt — шаблон «Стандартный»;
  • starter.htt — упрощённый шаблон;
  • sysroot.htt — корневая директория системного диска;
  • wiacam.htt, wiadev.htt, wiastream.htt — камеры и прочие мультимедиа-устройства.

Редактируя их, можно радикально изменить лицо «Виндов», вдоволь над ними поглумившись, или же добавить некоторые полезные и удобные функции. Очень рекомендую поприкалываться над файлом C:\WINDOWS\WEB\safemode.htt — в нём запрограммирована заставка, которая отображается на Активном Рабочем Столе в случае сбоя оболочки Windows. Если скопировать такой файл знакомому «чайнику», то его будет ждать немалое потрясение, когда вместо очередного предложения восстановить Рабочий Стол появится что-нибудь типа «А теперь пора попить пивка!» с картинкой соответствующего содержания.

Самый главный объект

Самым же важным и одновременно хуже всего документированным элементом шаблона веб-вида папки является объект FileList — его упоминание найдёте в разделе стилей и в конце шаблона. Именно он отображает папки и файлы в правой части окна Проводника. Но, к сожалению, с ним мало что можно придумать, просто, если вы вдруг захотите полностью переписать «виндовый» шаблон, то не забудьте внедрить в него этот объект, иначе доступа к файлам не будет. Правда, можно немного поиграть с его размерами, которые по умолчанию выставлены как 100% ширины и 100% высоты из-за чего панель с файлами занимает всю площадь правой части Проводника. Если же его размеры задать жёстко, в пикселах, то в Проводнике окажется дополнительное место для размещения ещё какого-либо управляющего элемента, графики или текста. Если же задать размер в процентах, но так, чтобы FileList занимал не 100% высоты, а, допустим, 70%, то его размер по-прежнему будет изменяться вместе с изменениями размеров окна Проводника, при этом сохранится и свободный участок площади для опытов.

На медленных же компьютерах, чтобы не загружать систему сопутствующими прибамбасами, можно пойти на такой трюк: оставить в шаблоне только один объект FileList, а остальной код добавить самостоятельно, сделав так, чтобы в Проводнике отображалось, например, несколько постоянно используемых ссылок. Этому спартанскому идеалу ближе всего соответствует упрощённый шаблон C:\WINDOWS\WEB\STARTER.HTT, в котором кроме FileList присутствует только отображение значка папки, но можно убрать и его, если удалить из HTML-кода всё, что касается объекта FolderIcon. Использование такого минималистского шаблона пригодится и в том случае, если вы будете делать шаблон с фреймами, в котором все нужные вам элементы управления вы создадите сами.

Значки

Ну что ж, мы провели огромную работу и использовали интеграцию Internet Explorer с операционной системой почти на всю катушку. Не хватает последнего штриха. Windows позволяет задавать для каждой папки индивидуальный значок, выделяющий её среди прочих безликих собратьев. Пока на диске всего пять системных папок имеют свой собственный значок, например папка C:\My Documents\My Pictures. Почему бы таким же образом не подчеркнуть уникальность и нашей папки с музыкой? Помещаем в нее файл иконки, называющийся, например, «icon.ico», снова открываем файл DESKTOP.INI и в раздел [.ShellClassInfo] добавляем строки:

IconFile=icon.ico
IconIndex=0

После сохранения изменений радуемся полученному результату. Старайтесь только, чтобы все такие значки имели разные названия, иначе Проводник их путает. Кстати, не обязательно копировать значок прямо в папку, иконку которой вы хотите изменить, не обязательно и использование ICO-файла — можно просто указать путь к DLL-библиотеке с несколькими значками и задать идентификатор нужного значка «IconIndex». Именно так и сделаны иконки системных папок, например, для папки My Pictures эти строки выглядят так:

IconFile=C:\WINDOWS\SYSTEM\MYDOCS.DLL
IconIndex=-101

Помимо индивидуального значка можно назначить и всплывающую подсказку, появляющуюся при наведении курсора на папку, если в этот же раздел поместить ещё одну строку:

InfoTip=Это папка с моей любимой музыкой

Правда, управлять значками лучше всего не ручным редактированием файлов DESKTOP.INI а, например, с помощью программы Microangelo [14] (www.impactsoft.com/muangelo/download/muadnld.html) — она добавляет в контекстное меню каждой папки новую команду «Appearance», воспользовавшись которой, вы за пару минут сделаете из стройных рядов одинаковых иконок разноцветный винегрет — главное, заранее позаботиться о нужном количестве оригинальных значков. Эта программа способна менять и текст всплывающей подсказки. Учтите только, что некоторые системные значки она поменять не сумеет — для этого лучше применить известную программу WinBoost 2001 Gold [15] (www.magellass.com), она полностью восполнит этот пробел.

Вот, собственно, и всё, что я хотел рассказать о такой полезной и в то же время практически никем не используемой функции Windows Me, как веб-вид папок. Консерваторам же, всё ещё использующим Windows 98, в которой все шаблоны сильно отличаются от Windows Me, могу лишь подсказать, как включить предпросмотр медиа-файлов. Для этого надо изменить всего один параметр в уже известном файле C:\WINDOWS\WEB\Folder.htt. В строке

"var wantMedia = false; // cool, but may hinder media file manipulation"

— поменяйте «false» на «true». Остальное же я предоставляю вам сделать самостоятельно. Вообще было бы замечательно, если бы пользователи и веб-дизайнеры наконец обратили внимание на эту особенность современных операционных систем, ведь точно так же можно настраивать и Windows 2000 и даже Windows XP, тем более что начиная с Internet Explorer 5.0 в качестве шаблона можно использовать XML-файлы, имеющие более мощный потенциал, нежели HTML. Но пока в Интернете мы имеем горы обоев для Рабочего Стола, всяческие заставки и скринсейверы и ни одного продвинутого FOLDER.HTT. Кстати, ведь благодаря веб-интеграции на Рабочий Стол можно помещать не только статичные графические файлы, но и HTML-документы со ссылками, JAVA-скриптами, объектами ActiveX, гораздо более функциональные и полезные, чем обычная графика. При этом не нужны никакие «Талисманы», поглощающие половину ресурсов процессора ради нескольких анимированных кнопок на Рабочем Столе — всё делается штатными средствами самой ОС. Может, восполним и этот пробел? Наверняка ведь среди наших читателей найдутся гораздо более квалифицированные программисты, чем я, скромный сисадмин. Жду писем!

Файлы

  • FOLDER.HTT [13] (оригинальный файл);
  • FOLDER.HTT [16] (с поправками для использования с Windows Media Player 9).



Темы