Текст книги "Реестр Windows 7"
Автор книги: Александр Климов
Жанр: ОС и Сети, Компьютеры
сообщить о неприемлемом содержимом
Текущая страница: 8 (всего у книги 11 страниц)
Пользовательские папки
Если в Проводнике открыть пользовательскую папку (C:Пользователи<ИмяПользователя>), то можно увидеть в ней ряд специальных папок с собственными значками, например, папки Контакты, Загрузки, Сохраненные игры и т. д. (рис. 4.17).
Рис. 4.17. Пользовательские папки в профиле пользователя
Мы можем настроить значки для некоторых папок по собственному вкусу, но Windows не предоставляет механизма для прямого вмешательства в эти настройки. Поэтому нам на помощь снова придет редактор реестра.
КонтактыСтандартными средствами мы не сможем установить свой значок для папки Контакты, так как в свойствах папки отсутствует вкладка Настройки. Чтобы вернуть вкладку на место, нужно в разделе HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerFolderDescriptions{56784854-C6CB-462B-8169-88E350ACB882}PropertyBag поменять у параметра NoCustomize типа DWORD значение на 0. Теперь если вызвать контекстное меню у папки и выбрать команду Свойства, то в открывшемся диалоговом окне Свойства: Контакты появится новая вкладка Настройка (рис. 4.18), при помощи которой можно назначить другое изображение для папки. Соответственно, чтобы снова скрыть вкладку Настройка, нужно присвоить параметру NoCustomize значение 1.
Рис. 4.18. Окно свойств Контактов с вкладкой Настройка
Рабочий стол
Папка Рабочий стол также не имеет вкладки Настройка в диалоговом окне Свойства: Рабочий стол. Поэтому поступаем аналогичным способом – находим раздел, соответствующий этой папке, и меняем в подразделе Property Bag значение параметра NoCustomize на 0. Полный путь к подразделу выглядит следующим образом: HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerFolderDescriptions{B4BFCC3A-DB2C-424C-B0297FE99A87C641}PropertyBag. Соответственно, чтобы снова скрыть вкладку Настройка, присвойте параметру NoCustomize значение 1.
Панель навигации
Я уже рассказывал вам, как можно удалить значок Библиотеки из панели навигации. Напомню, что панель навигации – это новый элемент интерфейса Проводника, который находится в его левой части (рис. 4.19).
Рис. 4.19. Панель навигации в Проводнике
С его помощью можно быстро перейти к часто используемым папкам. Кроме значка Библиотеки в панели навигации могут присутствовать и другие значки: значок Домашняя группа, Компьютер и др.
Домашняя группаЧтобы скрыть значок Домашняя группа из панели навигации Проводника, необходимо в разделе реестра HKCRCLSID{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}ShellFolder изменить значение параметра Attributes типа DWORD на b094010c. После перезагрузки компьютера значок из панели навигации Проводника исчезнет. Чтобы вернуть его на место, установите для данного параметра значение b084010c.
КомпьютерОчень интересно, что мы можем скрыть также значок Компьютер из панели навигации Проводника, переведя его, по сути, в однопанельный режим работы. Для данной операции необходимо в разделе HKCRCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}ShellFolder изменить значение параметра Attributes типа DWORD на b094010c. После перезагрузки компьютера значок из панели навигации Проводника исчезнет. Чтобы вернуть его на место, установите для данного параметра значение b084010c.
СетьВНИМАНИЕ
Следует отметить, что при использовании описанного трюка исчезнет значок Компьютер и с Рабочего стола.
Теперь займемся удалением значка Сеть из панели навигации. Для этого в разделе HKCRCLSID{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}ShellFolder нужно изменить значение параметра Attributes типа DWORD на b0940064. После перезагрузки компьютера он из панели навигации Проводника исчезнет. Чтобы вернуть значок Сеть на место, установите для данного параметра значение b0040064.
ИзбранноеСледующим объектом для экспериментов станет значок Избранное. В разделе HKCRCLSID{323CA680-C24D-4099-B94D-446DD2D7249E}ShellFolder вам нужно изменить значение параметра Attributes типа DWORD на a9400100. После перезагрузки компьютера он из панели навигации Проводника исчезнет. Чтобы вернуть значок Избранное на место, установите для данного параметра значение a0900100.
Команда СоздатьОдной из самых используемых команд в контекстом меню Проводника и Рабочего стола является команда Создать. Достаточно щелкнуть на свободном месте Проводника правой кнопкой мыши и вызвать контекстное меню, и вот уже можно следующим щелчком создать папку, ярлык, текстовый файл, документ Word и т. д. (рис. 4.20). Исследуем подробнее, как работает механизм управления созданием новых объектов в реестре, а также попробуем создавать собственные объекты.
Рис. 4.20. Команда меню Создать
Основные принципы работы команды Создать
Чтобы научиться создавать собственные объекты при помощи команды Создать, необходимо узнать, как это работает в реестре. Возьмем текстовый файл (TXT), который можно создать при помощи команды Создать. В редакторе реестра есть раздел, который отвечает за функциональность расширения TXT:HKCR.txt.
В этом разделе существует подраздел ShellNew (рис. 4.21), который и отвечает за добавление к команде Создать контекстного меню Проводника и Рабочего стола.
Рис. 4.21. Раздел реестра, ответственный за создание новых TXT-файлов
В данном разделе могут присутствовать следующие параметры:
► Command – этот строковый параметр определяет команду, которая будет выполняться при выборе пункта меню Создать.
► NullFile – данный строковый параметр не должен содержать никакого значения. В этом случае будет создаваться пустой файл.
► FileName – имеет строковый тип и определяет путь и имя файла-шаблона, который будет создаваться (копироваться в папку, откуда была вызвана команда Создать) после выбора команды меню Создать. Подробнее о файлах-шаблонах мы поговорим позже.
► Data – данный параметр двоичного типа содержит данные, которыми будет заполнен файл-шаблон. Он, например, может использоваться для генерации звуковых файлов в качестве образца.
Также раздел ShellNew может содержать и другие параметры строкового типа:
► IconPath – данный параметр определяет путь к значку, который будет отображаться в меню Создать вместо стандартного значка приложения, ассоциированного с файлом. Если присвоить ему значениеshell32.dll,51, то напротив соответствующего элемента меню Создать рисунок отображаться не будет.
► MenuText – данный параметр позволяет установить свой текст в меню Создать вместо стандартного названия, определяемого системой.
Раздел ShellNew может содержать в себе вложенный подраздел Config, который может содержать следующие параметры строкового типа.
► NoExtension – при наличии данного параметра создаваемый файл не будет иметь расширения, когда пользователь будет выбирать команду Создать.
► DontRename – по умолчанию имя созданного файла выделяется и готово к редактированию с клавиатуры. При наличии данного параметра имя создаваемого файла автоматически выделяться не будет.
Удаление команды СоздатьЕсли вы хотите удалить команду Создать из контекстного меню Проводника, удалите строковый параметр {D969A300-E7FF-11d0-A93B-00A0C90F2719} в разделе HKCRDirectoryBackgroundshellexContextMenuHandlersNew.
Удаление конкретных команд из меню СоздатьВНИМАНИЕ
Не забудьте сделать архивную копию ветки реестра или точку восстановления системы, прежде чем удалять или модифицировать разделы реестра!
Иногда пункт Создать очень сильно разрастается. Особенно это начинает раздражать, когда в этом списке содержатся упоминания программ, которые были уже давно удалены.
Чтобы почистить команду Создать от лишних элементов, нужно в реестре найти соответствующее расширение файла и удалить раздел ShellNew. Например, мы хотим удалить команду Текстовый документ. Ищем раздел HKCR.txt и удаляем подраздел ShellNew.
Аналогично поступаем с файлами BMP, ZIP, LNK и т. д.
Для папок и Портфеля нужно использовать, соответственно, разделы Folder и Briefcase. Особняком стоит файл Документ журнала (.jnt), используемый для создания файла программы Журнал (Journal.exe). Для удаления данного пункта нужно удалить раздел ShellNew из ветви реестра HKCR.jntjntfile.
Создание собственных команд для меню СоздатьКо мне нередко обращались за помощью, когда обнаруживали, что после установки какой-то программы вдруг исчезала возможность создания текстового файла или другого файла при помощи команды Создать.
Попробуем самостоятельно создать свои пункты в меню Создать. Для примера возьмем файлы REG и HTM. Выбор их не случаен. Так как вы читаете книгу о реестре, логично научиться использовать файлы REG в своих целях, а файлы HTM пригодятся для веб-мастеров, которые пред почитают создавать веб-страницы при помощи Блокнота.
Итак, наша цель – добавить новый пункт в меню Создать, при помощи которого будут создаваться заготовки REG-файла с нужной структурой. Первый и очевидный шаг – перейти в раздел HKCR и найти подраздел .reg. Создаем в нем новый раздел ShellNew.
Так как создавать пустой файл не имеет большого смысла, будем использовать в созданном разделе параметр FileName, в котором будет прописан шаблон для нового файла.
Запустим Проводник и создадим в любой папке файл registry.reg (как это сделать, описано в первой главе) следующего содержания:
Windows Registry -Editor Version 5.00
Теперь его нужно скопировать в папку C:WindowsShellNew. Этот каталог хранит заготовки для файлов, которые создаются с помощью контекстного меню.
Вернемся в редактор реестра и создадим в разделе HKCR.regShellNew строковый параметр FileName со значением C:WindowsShellNewregistry.regtxt. Теперь осталось перезагрузить компьютер и посмотреть на получившийся результат. Мы видим, что в меню Создать появилась команда Файл реестра, которая создает новый файл Файл реестра.reg (рис. 4.22.).
Если открыть созданный файл с помощью Блокнота, то в нем обнаруживается строчка Windows Registry Editor Version 5.00. Теперь можно быстро создавать REG-файлы, добавляя нужные разделы и параметры.
Рис. 4.22. Создание нового файла реестра
По тому же принципу можно создавать команды меню для создания других файлов. Например, добавим в меню Создать команду для создания HTML-файла по шаблону.
Поместим в папку C:WindowsShellNew предварительно созданный в другом месте файл index.html следующего содержания:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Мой заголовок</title>
</head>
<body>
</body>
</html>
Файл можно создать в Блокноте – технология работы точно такая же, как при создании REG-файла.
Откроем редактор реестра и в разделе HKCR.html создадим новый раздел ShellNew.
В только что созданном разделе HKCR.htmlShellNew создадим строковый параметр FileName, содержащий имя созданного выше файла-шаблона – index.html (рис. 4.23).
Рис. 4.23. Новый раздел и параметр в реестре
После перезагрузки компьютера в меню Создать появится пункт Документ HTML, щелчок по которому создает документ по шаблону, заданному файлом index.htm.
Удаление команды ОтправитьЕсли вы хотите скрыть команду Отправить из контекстного меню файлов, то присвойте пустое значение параметру по умолчанию в разделе HKCRAllFilesystemObjectsshellexContextMenuHandlersSendTo.
Создание собственных команд для контекстного меню Проводника и Рабочего стола
Мы знаем, как удалять или редактировать некоторые команды из контекстного меню Проводника и Рабочего стола. Настало время научиться создавать свои собственные команды. Информация о контекстном меню Проводника и Рабочего стола хранится в разделе реестра HKCRDirectoryBackgroundShell. Именно отсюда система узнает, какие команды нужно отобразить в контекстном меню и какие программы нужно запустить, когда пользователь щелкает по выбранной команде меню. Таким образом, вооружившись этими знаниями, мы сможем сами создавать нужные нам команды.
Для добавления новой команды в контекстное меню, достаточно создать в разделе HKCRDirectoryBackgroundShell новый подраздел. Предположим, мы хотим, чтобы в меню появилась команда, запускающая стандартный Блокнот. Создаем подраздел notepad и сразу можем проверить и убедиться, что в контекстном меню Рабочего стола появилась одноименная команда.
Естественно, такая команда не очень нас устраивает, и мы хотим задать собственный текст, например Блокнотик.
Для этого редактируем параметр по умолчанию созданного подраздела и записываем для него новое значение, которое мы хотим видеть, например, прописываем слово «Блокнотик» (рис. 4.24).
Рис. 4.24. Новый раздел реестра для добавления команды в контекстное меню
Проверяем и убеждаемся, что в контекстном меню появилась команда Блокнотик (рис. 4.25).
Пункт меню мы добавили, но щелчок по нему пока ни к чему полезному не приводит. Для того чтобы новый пункт меню не только отображался, но и работал, нам понадобится настроить еще некоторые параметры.
Рис. 4.25. Новый пункт меню
Подраздел notepad может содержать в себе другие подразделы и различные параметры строкового типа. Сначала рассмотрим параметры. Мы уже знаем, что параметр по умолчанию определяет название команды. Также можно использовать следующие параметры:
► MUIVerb – значение данного параметра заменяет собой значение параметра по умолчанию, то есть мы можем в нем задать имя для команды в меню.
► Extended – наличие данного параметра без значения говорит системе о том, что команда должна отображаться только при нажатии клавиши Shift. Вы можете посмотреть на подраздел HKCRDirectoryBackgroundshellcmd, в котором содержится такой параметр. Поэтому, если держать нажатой клавишу Shift, в контекстном меню появится команда Открыть окно команд.
► LegacyDisable – присутствие данного параметра запрещает отображение в контекстном меню создаваемой команды. Правда, тогда не понятно, зачем вообще создавать команду, если ее не нужно выводить на экран.
► ProgrammaticAccessOnly – присутствие данного параметра так же запрещает отображение в контекстном меню создаваемой команды, разрешая только программный доступ к ней.
► NoWorkingDirectory – наличие данного параметра говорит о том, что при работе программы (если команда контекстного меню запускает программу) не нужно указывать рабочий каталог программы.
Теперь перейдем к подразделам. Прежде всего, нужно создать подраздел command. Параметр по умолчанию данного подраздела должен содержать в себе команду, которая будет выполняться при выборе соответствующего элемента контекстного меню. В нашем случае нужно прописать команду notepad.exe (рис.4.26).
Рис. 4.26. Настройки в реестре для новой команды
Как видите, несколько несложных операций в реестре – и мы получаем новую команду для контекстного меню Рабочего стола и Проводника. А зная алгоритм создания новой команды, вы можете изучить и отредактировать параметры других программ, которые вы прописали в операционной системе.
Включение/выключения эскизовРассмотрим практический пример создания собственной команды в меню Проводника.
Если вы предпочитаете просматривать файлы в режиме Значки, то заметили, что, например, значки картинок отображаются в виде эскизов. В настройках папки можно изменить данное поведение и отключить показ эскизов.
Включать или отключать эти настройки очень утомительно. Судите сами – сначала надо нажать клавишу Alt, чтобы появилась строка меню у Проводника, далее выбираем меню Сервис ► Параметры папок... . Теперь нужно переключиться на вкладку Вид и поставить или убрать флажок у команды Всегда отображать значки, а не эскизы. Упростим задачу при помощи реестра и небольшого VBS-сценария, который циклически меняет значения параметра IconsOnly в разделе HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced.
Создадим новый раздел ToggleThumb в разделе HKCU SoftwareClassesDirectoryBackgroundShell и присвоим параметру по умолчанию строковое значение Включить/ Выключить эскизы. Тем самым мы создали новую команду для контекстного меню папки в Проводнике. Обратите внимание, что теперь мы используем раздел HKCU, чтобы действие примера распространялось только на одного пользователя.
В только что созданном подразделе ToggleThumb cоздаем подраздел command и прописываем в параметре по умолчанию строку wscript.exe «%WinDir%togglethumbs.vbs» (рис. 4.27).
Рис. 4.27. Настройка для выполнения сценария
Теперь создадим сценарий, который будет переключать режим показа эскизов.
Листинг 4.1. Сценарий для включения и выключения эскизов
Set WscripthShell = CreateObject(«WScript.Shell»)
strRegPath = «HKCUSoftwareMicrosoftWindowsCurrentVersion ExplorerAdvancedIconsOnly»
strParIconsOnly = WscripthShell.RegRead(strRegPath)
If strParIconsOnly = 0 Then
scripthShell.RegWrite strRegPath,1,"REG_DWORD"
Else
scripthShell.RegWrite strRegPath,0,"REG_DWORD"
End If
WscripthShell.SendKeys «{F5}»
Сохраните сценарий под именем togglethumbs.vbs и скопируйте его в папку Windows.
Теперь можно открыть Проводник и проверить работу новой команды. Для удобства я сначала выбрал режим Крупные значки, которые отображаются в виде эскизов (рис. 4.28).
Далее я выбрал в контекстном меню пункт Включить/Выключить эскизы и получил следующий результат – вместо эскизов я увидел значки программы Adobe Photoshop, ознакомительную версию которой я поставил несколько дней назад на своем компьютере (рис.4.29).
Рис. 4.28. Отображение файлов в виде эскизов
Рис. 4.29. Отображение файлов в виде значков
Добавление в контекстное меню Проводника и Рабочего стола команд, основанных на ActiveXПРИМЕЧАНИЕ: ДОПОЛНИТЕЛЬНЫЕ ФАЙЛЫ
Для того чтобы автоматизировать выполнение вышеописанного примера, вы можете воспользоваться следующими файлами:
ToggleThumbsInstall reg – для добавления в реестр раздела, реализующего пункт меню Включить/выключить экскизы.
togglethumbs vbs – файл скрипта, который нужно скопировать в папку C:Windows для корректной работы примера.
Их вы можете найти в папке Ch4 в архиве togglethumb zip.
Существует еще один способ создания команд для контекстного меню, основанный на использовании объектов ActiveX.
Информация о командах контекстного меню, основанных на ActiveX-объектах, хранится в разделе реестра HKCRDirectoryBackgroundShellExContextMenuHandlers.
Для создания новой команды нужно создать подраздел с произвольным именем и в параметре по умолчанию указать CLSID ActiveX-объекта.
Если вы откроете редактор реестра, то в разделе HKCRDirectoryBackgroundShellExContextMenuHandlers увидите уже существующие подразделы.
Давайте попробуем создать несколько своих команд. Сначала мы создадим подраздел Test и в параметре по умолчанию будем прописывать нужные значения (рис. 4.30).
Рис. 4.30. Параметр, реализующий ActiveX-элемент контекстного меню
ПРИМЕЧАНИЕ
Не забудьте сделать копию модифицируемой ветки реестра или точку восстановления системы перед модификацией реестра!
Система отобразит в меню лишь одну из описанных команд даже в том случае, если вы создадите несколько разделов с разными CLSID, указанными по умолчанию. Поэтому выбирайте ту команду, которая наиболее актуальна для вас и оснащайте ею вашу систему.
Таблица 4.3. CLSID для добавления новых команд в контекстное меню (возможно добавление лишь одной из этих команд)
А вот несколько команд, которые не конфликтуют с другими:
Таблица 4.4. CLSID для добавления новых команд в контекстное меню
Добавляем Windows Media Center в меню автозапуска в Windows 7
В Windows 7 меню автозапуска не предоставляет возможности воспроизведения мультимедиа в Windows Media Center. Вы не найдете такого пункта и в настройках параметров автозапуска в панели управления.
БЛАГОДАРНОСТь
Автор книги выражает благодарность Павлу Кравченко (http://pavelmvp spaces live com/) за помощь в подготовке данного раздела.
По умолчанию Windows 7 не содержит записей в реестре, которые необходимы для возможности выбрать воспроизведение в Windows Media Center. Но вы можете самостоятельно добавить необходимые вам записи или экспортировать их с компьютера под управлением Windows Vista. Параметры, отвечающие за пункты диалогового окна автозапуска, содержатся в разделе: HKLMSOFTWAREMicrosoftWindowsCurrentVersionexplorerAutoplayHandlers.
ПРИМЕЧАНИЕ: ДОПОЛНИТЕЛЬНЫЕ ФАЙЛЫ
Для того чтобы добавить в меню автозапуска возможность воспроизведения мультимедиа в Windows Media Center, импортируйте в реестр файл w7 mediacenter to autoplay reg.
Его вы можете найти в папке Ch4, в архиве mediacenter zip.
Импортировав указанный файл в реестр, вы получите пункт воспроизведения мультимедийного контента в Windows Media Center (рис. 4.31).
Рис. 4.31. Добавление нового пункта в меню автозапуска
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.