Модификация списка каталогов панели Places bar в окне Open на примере Windows 2000 и Office 2000

Microsoft реализовала в Windows 2000 некоторые расширения графического интерфейса, чтобы пользователям было проще ориентироваться в системе. Однако польза от этих «улучшений» многими ставиться под сомнение. В частности, переход к Active Desktop на базе HTML — очень большое изменение с точки зрения пользователя Windows NT 4.0. Тем не менее надо признать, что новый UI предоставляет опытным пользователям возможность персонализировать свой рабочий стол и организовывать выполнение ежедневных рутинных операций так, как им удобно. В этой статье я расскажу о применении одной из новых возможностей интерфейса — диалогового окна Open панели Places bar.

Диалоговое окно Open

Как можно было заметить, когда некоторое приложение запускается в Windows 2000, окно Open имеет несколько иной вид, чем в NT. На Экране 1 показано окно Open, которое выводится при выборе File, Open в программе Notepad в Windows 2000. Диалоговое окно Windows 2000 имеет новый элемент, который отсутствует в аналогичных окнах предыдущих версий Windows: в левой части окна появилась вертикальная панель с кнопками. В документации Windows 2000 Software Development Kit (SDK) она называется Places bar.

Экран 1. Стандартное окно Open любого приложения Windows.

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

По умолчанию на Places bar есть кнопка для каталогов History, Desktop, My Documents, My Computer и My Network Places. Каталог History — это системный репозитарий для последних документов и каталогов, к которым происходило обращение. Этот каталог при поиске недавно использовавшихся файлов открывается первым. Но остальные четыре каталога тоже могут использоваться часто.

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

Настройка Places bar

Искать в реестре или где-либо еще список каталогов, перечисленных в Places bar, нет никакой необходимости. До тех пор пока вручную или автоматически не будет создан новый набор каталогов, Windows 2000 использует стандартный.

Панель Places bar считается системным ресурсом, так что при назначении группы каталогов для помещения в Places bar об этом становится известно всем приложениям, запускаемым в Windows 2000. Соответственно, нельзя, например, для Notepad назначить одну группу каталогов, а для Paint — другую. Все программы Windows 2000 используют одну и ту же панель Places bar, в стандартном исполнении или специально настроенную (программы Microsoft Office 2000 — исключение, но об этом чуть позже).

В первую очередь при создании индивидуальной панели каталогов нужно сообщить системе об отказе от использования стандартной панели. Откройте реестр и создайте раздел CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPoliciesComDlg 32Placesbar (вполне возможно, что до уровня Policies запись в реестре присутствует, а дальше — нет). После создания нового раздела при открытии диалогового окна Open панель Places bar окажется пустой. Наличие раздела Places bar для Windows 2000 означает отказ от стандартной панели каталогов (но при этом индивидуальный список еще не сформирован).

В Places bar может содержаться до пяти параметров, от Place0 до Place4, и, соответственно, в указанных пределах можно выбрать произвольные пять каталогов. Windows 2000 не анализирует параметры с именами Place5, Place6 и т. д. Назначать каталоги следует в порядке возрастания цифр в имени параметра, без пропусков (т. е. нельзя назначить Place0 и следом Place2, пропустив Place1). Некорректное описание параметра Places bar может привести к нарушениям в работе панели Places bar.

При добавлении параметров в раздел Places bar следует пользоваться полностью определенным именем (fully qualified name) существующего каталога. Новое строковое значение должно содержать полный путь и название каталога. Тип параметра — REG_SZ (или REG_EXPAND_SZ, если при описании используется переменная окружения).

Кроме того, можно воспользоваться ссылкой на системные каталоги, полное описание которых запомнить трудно (скажем, кто помнит FQN системного каталога My Documents?). Если нужно добавить запись для My Documents или Favorites, следует использовать соответствующие числовые ID вместо полного пути и названия каталога. Разработчики Microsoft такие ID обозначают термином CSIDL. В Таблице 1 перечислены идентификаторы для типичных системных каталогов. В этом случае тип добавляемой записи — REG_DWORD.

Автоматическая настройка Places bar

В Листинге 1 показан пример программы (setplaces.vbs) на VBScript для чтения и записи каталогов панели. В начале цикла программа запрашивает номер place-каталога, который необходимо изменить. Если указано число от 0 до 4, программа продолжает работу, предлагая щелкнуть Yes для указания имени каталога или No, если планируется использовать ID-номер. После ответа Yes программа предлагает ввести полное название каталога, после чего создается соответствующая запись REG_SZ. Если ответ No, предлагается ввести любой системный идентификатор, и система создает параметр типа REG_DWORD. В завершение программа обновляет содержимое реестра, и цикл повторяется.

Как видно из текста программы, какая-либо обработка ошибок в ней не предусмотрена. Чтобы сделать программу более полной, приведенный код всегда можно перенести в Visual Basic (VB).

В Листинге 2 показан текст еще одной программы, restoredefaultplaces.vbs, которая просто удаляет ключ Places bar, восстанавливая тем самым настройку Places bar, принятую по умолчанию.

Microsoft Office 2000 Places bar

Изменения в реестре, о которых было рассказано, затрагивают приложения, использующие диалоговые окна на основе обращений к библиотеке Windows 2000 Common Dialog Library. Приложения Office 2000 обращаются к собственной библиотеке, поэтому модификация окна Open для изменения Places bar не затрагивает аналогичную область при работе таких приложений, как Microsoft Word и Microsoft Excel.

Пакет Office 2000 предоставляет механизм для персонализации собственной панели Places bar. Раздел реестра, который за это отвечает, — CURRENT_USERSoftwareMicrosoft Office9.0CommonOpen FindPlaces. Однако в простейших случаях он обычно не применяется. Microsoft предлагает утилиту, которую можно установить в меню Tools приложений Office 2000 и использовать для изменения каталогов из Places bar. Places.exe — это программа Office 2000 Add-In, которую можно загрузить по адресу: http://support.microsoft.com/support/ kb/articles/q260/1/90.asp (там же находится статья «INFO: Places COM Add-In for Office 2000 Available for Download», файл read-me.doc, в котором дается подробное описание настройки Office 2000 Places bar, а также исходный код программы на VB для Add-In).

Самораспаковывающийся файл places.exe нужно поместить в новый каталог и дважды щелкнуть по нему. Затем требуется нажать Start, Run, набрать

regsvr32 places.dll

и щелкнуть ОК для регистрации этой единственной библиотеки в каталоге — places.dll. Если в данный момент открыто какое-либо приложение Office 2000, его следует закрыть, а затем открыть вновь. В меню Tools появится новый пункт Set Places, который позволяет указывать в Places bar новые каталоги. В отличие от приложений Windows 2000 в панели Office 2000 поддерживаются маленькие значки. Число индивидуальных каталогов в Places bar Office 2000 может быть доведено до 10. Все изменения, выполненные для одного приложения Office 2000, затрагивают и остальные приложения пакета.

Итак, Places bar — пример удачного решения, которое экономит время пользователя. Однако оно «работает» только тогда, когда индивидуальный список каталогов действительно используется часто.

ДИНО ЭСПОЗИТО специализируется на разработке сценариев для среды СОМ и является автором справочника для программистов по написанию сценариев Windows Scripting Host Programmer's Reference (Wrox Press); работает в Риме преподавателем и консультантом.


Windows 2000 Magazine/RE всегда можно приобрести в следующих московских магазинах и киосках:
ОЦ Московский дом книгиул. Н. Арбат, д. 8
ООО "Библио Глобус"ул. Мясницкая, д. 6
ОЦ МДК Дом технической книгиЛенинский пр-т, д. 40
ООО "Глобус РДП"лотки в метро
ООО "Флейм"киоски в ВАО
ООО "Буква Премьер"киоски в СВАО
ООО "Труд пресс"киоски в ЦАО
ООО "Гермес Х"Ленинский пр-т, д. 38
ООО кн. м-н "Молодая гвардия"ул. Б.Полянка, д. 28
ООО "Пресбург"ул. Ладожская, д. 8
ООО "Прессторг"ул. 2-я Тверская-Ямская, д. 54
Центр-прессыкиоски по Москве
Витязькиоски у метро
Дом книги "Медведково"Заревый пр-д, д. 12

Таблица 1. Системные каталоги и их ID.
КаталогID
Fonts 20
Recycle Bin 10
My Computer 17
Dial-up 49
Printers4
Favorites6
Send To9
My Pictures39
History34
My Network Places18
My Documents5
Windows36