computery.ru

flashback

 на главную

 заложить
 подписка
 editorial

hardware

 железо
 ликбез
 support

software

 программы
 support

connect

 интернет
 телефония

history

 как это было
 market history
 письма
 случаи
 mustdie
 о журнале
 архив журнала

сервис

 комиссионка
 конференция
 драйверы
 гостевая книга
 отзывы
 почта

реклама

поиск



PageRank

 


система

 

Не ОС красит веб...
Пара практических занятий. Занятие второе

Сергей Трошин 
stnvidnoye@chat.ru
http://stnvidnoye.chat.ru

   страница 1  2

На прошлом занятии мы с вами по мере сил и возможностей учились задавать фон папок Windows, писать комментарии к ним, а также задавать фон панели предпросмотра. Освоили? Получилось? Приступаем к следующим процедурам.

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

В действительности, в стандартный шаблон заложен предварительный просмотр не только графических файлов и веб-страничек. Точно так же можно выводить и "превьюшки" видеоклипов или звуковых файлов - при этом на информационной панели появляется уменьшенный вариант всем знакомого Windows 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, конкретно же за внедрение Media Player 6 в HTML-документ - файл msdxm.ocx, а за седьмую версию - 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}, принадлежащий Media Player 7. Но этого мало. Дело в том, что у различных элементов ActiveX различаются и параметры, например, по-другому передается в проигрыватель путь к выбранному файлу (метод ".Open" в шестой версии и метод ".URL" в седьмой), поэтому придется переписать весь этот участок кода:
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);

Как видите, здесь, помимо изменения некоторых параметров, задается еще и размер окна проигрывателя, чтобы он лучше выглядел в зоне предпросмотра. Аналогично устанавливается прослушивание и аудиофайлов через Windows Media Player 7. Единственное, что нужно для работы с ActiveX, - иметь под рукой документацию со всеми их параметрами.

В случае с WMP7 вы найдете ее на сайте Microsoft: msdn.microsoft.com/library/en-us/wmplay/mmp_sdk/
playercontrolguide.asp
.

Технология веб-интеграции позволяет вносить в Проводник очень серьезные изменения, вплоть до встраивания в Windows проигрывателей сторонних разработчиков для воспроизведения файлов, которые не понимает Media Player. Например, можно сделать так, чтобы файлы 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, изучите страничку service.real.com/help/library/guides/
extend/htmfiles/activex.htm
. Тот же код, что я привожу, вполне достаточен и работоспособен с последними версиями проигрывателя. Разумеется, необходимо, чтобы RealPlayer был установлен в вашей системе.

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

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

Бесспорно, если вы хотите иметь четкие гарантии, что никто ни дома, ни на работе не сможет вторгнуться в вашу "прайвеси" и прочитать любовную переписку, передать бухгалтерские документы в соответствующие органы или узнать, какие сайты вас больше всего привлекают в интернете, то придется шифровать диск специальными программами (например, StrongDisk Pro - см. Upgrade # 22 (36)).

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

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

В качестве примера опять используем нашу папку с музыкой - в файл 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=Upgrade Then
pass
Else
err
End If
Sub err
MsgBox "Access Denied!"
Navigate "C:"
End Sub
Sub pass
MsgBox "Welcome!"
End Sub
</script>

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

К тому же он не предохранит от прямого доступа в поддиректории, например в ту же самую папку Folder Settings, в которой без труда можно обнаружить наш пароль. Так что грамотный пользователь такую защиту обойдет минуты за две (а сисадмины, имеющие привычку пользоваться альтернативными менеджерами типа FAR или Windows Commander, и вовсе не заметят - прим. ред.), но как защита "от дурака" и от прочих неприятностей он вполне годится, да и написать более серьезный скрипт вам ничто не мешает.

Главное, что для такого трюка не требуется никаких программ - только две минуты свободного времени на настройку веб-вида!

 



При перепечатке материалов сайта ссылка на UPGRADE обязательна. 
Имена и фамилии авторов изменять не рекомендуется.

  programmer: 
  Илья Васильев
новые поступления: 
vano@veneto.ru
PR-менеджер: 
Екатерина Кожанова
  newswriters:
  Николай Барсуков
  Александр Савицкий
тех. поддержка по софту:
stnvidnoye@mail.ru;
problem@veneto.ru
менеджер тестовой лаборатории:
testlab@veneto.ru
(495) 246-7468
  content: egor_be 
 
тех. поддержка по железу:
problem@veneto.ru
отдел рекламы: (495) 745-6898, 510 58 31
Виноградов Павел, Илья Саньков
директор отдела распространения Ирина Агронова agronova@veneto.ru: (495) 681-7837, 684-5285

© © 2000-2006 Upgrade