MULTI SZ,
_I ■
О Двоичные значения
Двоичные значения похожи на строковые и содержат строки, состоящие из знаков. Разница лишь в просмотре и редактировании информации. Вместо стандартного текстового окна информация двоичного параметра переводится в шестнадцатеричный код и отображается в шестнадцатеричном виде. Дважды щелкните мышью на любом двоичном значении, чтобы воспользоваться стандартным редактором двоичного кода (рис. 3.4).
Двоичный параметр предназначен для хранения информации, которая не может быть представлена обычными текстовыми строками. Маловероятно, что значения двоичного параметра будут содержать читаемый текст (хотя на рис. 3.4 показан именно такой случай). Формат представления информации в двоичном параметре полностью зависит от приложения, которое ее создало.
Каждый отдельный символ соответствует шестнадцатеричному числу что позволяет использовать знаки, которые не могут быть введены с клавиатуры. Можно использовать шестнадцатеричные числа слева или вводить ASCII-код справа.
Редактор реестра предлагает и альтернативную программу для просмотра двоичного кода (рис. 3.5). Просто выберите любое значение и в меню Вид (View) укажите Вывод двоичных данных. Жаль, что нельзя использовать это окно для редактирования значений, так как оно шире, чем стандартное окно редактора двоичного кода и предлагает четыре разных варианта для просмотра.
О Параметр DWORD
DWORD — это всего лишь число. Достаточно часто смысл параметра DWORD легко понять: например, 0 — это -«нет», 1 — это «да», а 161 — количество секунд, которое потребовалось для решения судоку. Параметр DWORD подходит для случаев, когда можно использовать только числа, в отличие от строковых и двоичных параметров, которые могут содержать все, что угодно.
В редакторе параметра DWORD (рис. 3.6) можно выбрать основание системы счисления (вспомните школьную математику). Например, число 64 в шестнадцатеричной системе равно 100 в десятичной.
Кмиспне п*рлмс гра -QWORD i/S-i бит^) ' | |
Цармгр- | |
ilrtsrfiecfi РЦЬе | |
всзач» ксчсдокч | |
, tOfS | ф U]*cm4au*Yf£«f* |
О J3eegHr»4*e | |
[ (Ж ] J СНтчыа J * | |
Рис. 3.6. Значения DWORD — это просто числа, но они могут бьггь представлены как в десятичной, так и в шестнадцатеричной системах счисления |
f‘V I Выбрав неправильную систему счисления, вы можете указать неправильное ^ значение параметра.
Скорее всего, вы выберете десятичную систему (хоть Microsoft и не ставит ее по умолчанию), так как именно она используется большинством людей в повседневных подсчетах. (Впрочем, встроенный в Windows калькулятор, calc.exe, поможет перевести число из шестнадцатеричной системы счисления в десятичную.)
Система Windows также поддерживает значение QWORD, что практически то же самое, что DWORD, только с большей вместительностью. Подробнее об этом см. далее врезку «Когда число — это не только число».
Приложение, которое прописывает параметр в реестре, учитывает его тип и назначение. Не существует четких правил, ограничивающих выбор типа или имени параметра. Программист для сохранения собственных рекордов в какой-нибудь игре может выбрать двоичную переменную и дать ей название High Scores или использовать строковую переменную с названием Lard Lad Donuts. Все, что вам нужно сделать в роли «хакера» реестра, — это использовать значения в таком формате, в котором их ожидает получить конкретное приложение.
Нужно обратить внимание на то, что строковое значение «по умолчанию», которое появляется вверху каждого раздела, является наследием ранних версий Windows, когда каждый раздел мог иметь только одно значение. Значение «по умолчанию» не может быть ни перемещено, ни переименовано, хотя его содержание может быть изменено. Пустое значение «по умолчанию» эквивалентно означает, что значение не присвоено.
КОГДА ЧИСЛО - ЭТО НЕ только число
Иногда числа, хранящиеся в DWORD, состоят из нескольких частей, связанных логической арифметикой.
DWORD — «двойное слово», то есть оно гложет содержать два 16-битных значения. 16-битное значение — это целое число, хранящееся в 16 битах, что означает, оно не может быть больше, чем 2‘6, или 65 536. Таким образом, значение DWORD может использоваться для хранения двух таких чисел или одного 32-битного числа (не больше 232 или 4 294 967 296) или даже тридцати двух 1-битных двоичных чисел (каждое из которых может принимать значение 1 или 0).
Система Windows 7 поддерживает и 64-битное значение QWORD, которое доступно даже при использовании 32-битной версии. 64-битный QWORD — это учетверенный WORD, который равен двум DWORD и может содержать шестьдесят четыре 1-битных значения, четыре 16-битных значения, два 32-битных или одно 64-битное значение (которое может быть до 2W, или 18 446 774 073 709 600 000).
Может быть, у вас сейчас возник вопрос, как же это знание может помочь в жизни.
Но оно и не может помочь. Фактически оно, возможно, только все ухудшит. Но оно будет бесценно, если вы наткнетесь на значение DWORD, которое составлено из более мелких компонентов. Например, вы зеркально отображаете переключатель в каком-либо приложении и видите, что значение DWORD меняется с 16 на 8. Вы обнаружили то, что вышеуказанный переключатель хранится в этом значении как 4-битный (первый — 1, второй — 2, третий — 4). (Если это непонятно, то посмотрите в Википедии «Двоичная система исчисления» для того, чтобы разобраться в этом понятии.)
Чтобы вас еще больше запутать, есть еще одна разновидность значения DWORD — BIGENDIAN (REG_DWORD_BIGENDIAN). Это практически то же самое, что и обычный 32-битный DWORD, за исключением того, что два 16-битных слова хранятся в противоположном порядке (большее слово идет первым). Такое случается редко. Но у вас могут быть неприятности, если вы замените одно из слов обычным значением DWORD.
Проблема в том, что 64-битное программное обеспечение с трудом удается совместить с 32-битным; это вызывает необходимость существования двух реестров, чтобы эти биты находились подальше друг от друга. Поскольку иметь два независимых реестра непрактично, разделяются лишь некоторые разделы и ветви. Сопоставления типов файлов, например, общие для обоих слоев2, поэтому вы можете один раз связать .txt-документы с любимым текстовым редактором, и эти связи будут работать и в 32-битной, и в 64-битной версиях Windows.
Но в то же время 64-битная программа не может обратиться к 32-битной DLL. Часть реестра, управляющая DLL и другими компонентами, будет для каждого слоя Windows отдельной. Таким образом, например, 64-битные версии Проводника и Internet Explorer недоступны для 32-битных DLL, и наоборот.
#*V Из-за такого разделения классов программного обеспечения приходится запускать
32-битную версию Проводника, если вы хотите использовать дополнения кон-j £ текстного меню, или вы будете вынуждены использовать только родные 64-битные *■' дополнения контекстного меню для работы с 64-битной версией Проводника,
Как правило, такой раздвоенный дизайн не требует от вас дополнительных усилий. Каждое из 32-битных приложений видит только те разделы реестра, которые оно должно видеть, а все 64-битные приложения видят только 64-битный реестр. Дополнительные усилия понадобятся только в тех случаях, когда двойственность реестра становится помехой для ежедневного неавторизованного доступа или вас начинают раздражать надоедливые предупреждения.
Редактор реестра включает специальную ветвь Wow6432Node, позволяющую получить доступ к 32-битным записям из того же окна, что и к 64-битным. В Windows 7 по умолчанию существует три таких «узла»:
НК EY_C LASS ES_ROOT\Wow6432Node3
HKEY_CURRENT_USER\Software\Wow6432Node
HKEY_L0CAL_MACHINE\S0FTWARE\Wow6432Node
Например, вы захотели изменить настройки реестра для Adobe Photoshop. Для 64-битной версии Photoshop вы перейдете к
HKEY_CURRENT_USER\Software\Adobe\Photoshop
а для 32-битной версии — к ветви
HKEY_CURRENT_USER\Software\Wow6432Node\Adobe\Photoshop
Так как 32- и 64-битные классы (компоненты программного обеспечения) не являются взаимосочетаемыми, то 64-битные классы регистрируются в ветви
HKEY_CLASSES_ROOT\CLSID\{class_id}
а 32-битные классы — в ветви
HKEY_CLASSES_R00T\Wow6432Node\CLSID\{class_id)
Можно использовать и 32-битную версию редактора реестра (%systemroot%\ syswow64\regedit.exe), хотя много пользы вы из этого не извлечете. При запуске regedit.exe добавьте параметр командной строки -т, тогда 32-битная и 64-битная версии редактора откроются одновременно.
Итак, мы окончили знакомство с основами реестра. По-настоящему интересно становится, когда вы узнаете, какие инструменты можно использовать в реестре и что с ними можно делать.
У редактора реестра есть простая (к сожалению) функция поиска, позволяющая искать текст во всех разделах и значениях. Просто выберите Найти (Find) в меню Правка (Edit) редактора реестра, напечатайте требуемый текст (рис. 3.7) и нажмите кнопку Найти далее (Find Next).
ГЪлгк J | |
1 Отмм I | |
0 имм рэшлсв | |
В нчсиа иммярэв | |
Тйгшо С1РОД uf-rvfjjHr | |
Рис. 3.7. Окно Поиск (Find) редактора реестра поможет найти текст в названиях разделов, параметров и их значениях |
Поиск в редакторе реестра не всегда хорошо работает. Он очень медленный и не сохраняет историю предыдущих иоисков. Но его самый большой недостаток в том, что вы можете найти только одно совпадение за один раз. Приходится постоянно нажимать Найти далее (Find Next), чтобы просмотреть другие результаты. А если вы случайно щелкнули пару раз на Найти далее (Find Next), то обратного пути уже нет. И наконец, не существует способа выполнить поиск и замену, но об этом поговорим позже.
Нажмите Ctrl+F или выберите меню Правка ► Найти (Edit ► Find), чтобы начать поиск в текущем разделе. (Чтобы вести поиск по всему реестру, прокрутите дерево разделов вверх и выберите Компьютер.)
В окне поиска убедитесь, что все три параметра в разделе Просматривать при поиске - Имена разделов, Имена параметров и Значения параметров - были выбраны. Параметр Искать только строку целиком должен быть выключен, если, конечно, вы не ищете текст, который может появляться в других словах. Поиск слова handle найдет PersistentHandler и TeachAndleam.
Поиск в редакторе реестра останавливается, когда находит первое соответствие запрашиваемого элемента. Просто нажмите F3 для продолжения поиска. Если { £ вы хотите, чтобы отображались все соответствия сразу, воспользуйтесь агентом реестра, о котором мы поговорим в следующем разделе.
Вам, возможно, придется научиться некоторым уловкам, чтобы найти в реестре: О Пункты контекстных меню
Пункты контекстных меню обычно хранятся в ветви HKEY_CLASSES_ROOT (см. «Сопоставление типов файлов»). При поиске любого из пунктов меню помните, что они содержат подчеркнутые символы для обозначения клавиши быстрого доступа, хотя Windows 7 и не отображает их по умолчанию. Например, меню Datasheet хранится в реестре как Data&sheet. Знак & в Data&sheet дает указание системе Windows подчеркнуть символ, следующий за ним («s» в данном случае), то есть в строку поиска необходимо включить символ &. Если этого не сделать, поиск вам не поможет.
Поиск текста не зависит от регистра, поэтому не нужно беспокоиться о выделении прописными буквами.
О Имена файла и папки
Несмотря на то что длинные имена файлов (длиннее, чем архаичный стандарт
8-точка-З) широко использовались на компьютерах больше десятилетия до появления Windows 7, короткие имена файлов все еще имеют значение в современной Windows, особенно в реестре. Например, путь папки C:\Program Files в короткой форме 8.3 будет выглядеть как C:\PROGRA~l. (См. «Продвинутые настройки NTFS», чтобы узнать о создании коротких имен файлов.)
Даже Microsoft все еще продолжает использовать короткие имена файлов. Так, при установке Office 2007 в реестре появляется значение C:\PROGRA~l\MICROS~2\ Officel2\1033\ACCESS12.ACC.
К сожалению, это означает, что необходимо искать и длинную и короткую версии имени файла или папки, если вы хотите найти их все. Предположим, что вы хотите переместить папку Program Files с одного диска на другой. Настройки путей к этой папке могут храниться в реестре как C:\Program Files или как C:\Progra~l. Убедитесь, что вы ищете оба варианта.
При поиске Program Files и Progra~l достаточно ввести progra, и вы найдете оба варианта. Учтите, что поиск начнет натыкаться на другие упоминания слова { •» program, поэтому попробуйте ограничить результаты, добавив обратную косую черту перед текстом (\progra).
О DLL, классы, компоненты, расширения и CLSIDs
Windows и все приложения состоят из маленьких строительных кубиков, которые называют классами, расширениями или объектами. Я избавлю вас от рассуждений по поводу COM-компонентов, архитектуры .NET и от других жаргонных слов. Достаточно сказать, что большинство этих кубиков зарегистрированы в ветви реестра HKEY_CLASSES_ROOT\CLSlD и распознаются по шестнадцатеричному коду CLSID (идентификатор класса): {AC0EEBCA-73FA-4EB3-87FF-96E58401FA1F}
Почему это важно? Это означает, что можно проследить, где класс упоминается (другими словами, как он используется в Windows) и где он зарегистрирован. Все это можно сделать, исследовав реестр на идентификатор класса.
Например, данные конфигурирования для вышеуказанного класса находятся в HKEY_CLASSES_ROOT\CLSID\{AC0EEBCA-73FA-4EB3-87FF-96E58401FA1F}
Если компонент не работает, то можно попробовать устранить или диагностировать проблему, изменив значения в этом разделе. Если удалить этот раздел, произойдет отказ регистрации класса. Чтобы отключить поддержку «сжатых папок» (ZIP-файлы, выглядящие как папки в Проводнике), необходимо удалить две ветви идентификатора класса (см. главу 2).
* ‘ Используете 64-битную Windows? 64-битные классы не там, где 32-битныс, _»
подробнее об этом см. «Системный реестр в 64-битной Windows*.
ЗАРЕГИСТРИРОВАННЫЕ И НЕЗАРЕГИСТРИРОВАННЫЕ КОМПОНЕНТЫ
В Windows есть специальная программа, regsvr32.exe, которую можно использовать для ручной регистрации или отказа от регистрации. Вы можете исправить ветвь GLSID для конкретного компонента, введя в окно командной строки
regsvr32 "с: \program files\my app\some file.dll"
Вы можете удалить все записи, которые использует конкретная DLL:
regsvr32 /и "c:\programfiles\my app\somefile.dll"
Обнаружили, что стали слишком часто пользоваться этой возможностью? Добавьте два новых действия в контекстное меню для .dll-, .ах- и .осх-тнпов файлов - одно, чтобы зарегистрировать, а второе — чтобы отказаться от регистрации.
Если идентификатор класса найден в другом месте (внутри другого раздела HKEY_ CLASSES_ROOT\CLSID), значит, программа, к которой относится этот раздел, использует данный компонент. Если вы удалите ссылку, то уничтожите связь.
В редакторе реестра нет поиска с заменой по веской причине — одна-единственная операция замены могла бы сделать систему неработоспособной. Но иногда случается так, что необходимо заменить все упоминания папки C:\Program Files\My Program на D:\my Folder. В зависимости от количества таких элементов операция может длиться несколько часов.
Агент реестра не только предоставляет улучшенные возможности для поиска в реестре (результаты будут показаны в виде списка), но также поддерживает операции поиска и замены. Попробуйте переместить приложение с одного диска на другой без переустановки:
1. Откройте в Панели управления Creative Element Power Tools и нажмите на Start Registry Agent now.
2. Введите текст для поиска (например, C:\program files\acme) и начните поиск. Обратите внимание на то, что для поиска текста, содержащего обратную косую черту, необходимо отключить опцию Keys, так как имена разделов реестра не могут содержать обратную косую черту.
3. Результаты показаны в виде таблицы с тремя колонками (рис. 3.8), Левая колонка показывает раздел, где был найден текст. Вы можете щелкнуть на ней, чтобы открыть редактор реестра в нужном месте. Остальные колонки показывают имя и значение параметра.
4. Выберите закладку Replace.
Поиск и замена слова Microsoft — очень плохая идея. Не пытайтесь делать это. Обычный поиск с помощью агента реестра безвреден, но замена может быть столь же опасной, сколь и удобной.
5. Пометьте элементы, которые вы собираетесь заменить.
6. Введите новый текст (например, D:\new acme).
7. Выберите, что именно вы хотите заменить, с помощью опций Keys, Values и Data. Обратите внимание на то, что окошко Keys по умолчанию отключено из соображений безопасности. Нажмите кнопку Help, чтобы узнать, как снять это ограничение.
* \
— Замену невозможно отменить, а это значит, что если вы что-то не так сделали, ^ % то единственный способ вернуть все назад — это восстановление реестра из ре-М?» 4 «4 зервной копии. Хотите совет? Воспользуйтесь вкладкой Export для сохранения -файла реестра, чтобы использовать его для восстановления реестра.
8, Нажмите кнопку Replace.
Теперь вы знаете, как изменить элемент в реестре, но как узнать, какой элемент нужно менян»?
Иногда это очевидно. Например, вы хотите уменьшить время запуска любимого приложения, и вам кажется, что можно отключить заставку программы (дружелюбный логотип, на который вы смотрите, пока программа загружается, но который требует определенного времени для своей загрузки). В разделе реестра HKEY_Current_User\Software есть параметр с именем ShowSplashScreen. Вы можете его включить (значение 1) или выключить (значение 0).
т
I Ноль и один не всегда соответствует выключению н включению, иногда
I имя значения инвертирует смысл: например, если присвоить параметру DontShowSplashScreen значение 1, то, скорее всего, вы отключите свойство ShowSplashScreen.
Все не так легко, как кажется. Вы можете увидеть длинные, ничего не значащие числа и буквы. Хотя и не существует строгих правил того, как должны быть названы значения и разделы или организованы данные, есть способ, который можно использовать, чтобы выяснить, как нужная вам настройка хранится в реестре.
В чем же смысл? Когда вы ищете значения реестра, ответственные за определенную настройку, вы сталкиваетесь с несколькими задачами:
О Как найти спрятанные настройки
Не все настройки приложения выводятся в диалоговом окне Свойства, некоторые из них можно изменить только в реестре. Найдя, где приложение хранит настройки, вы можете изучить другие параметры приложения и понять, как они работают.
О Как воспроизвести настройки
Найдя разделы и значения, ответственные за настройки, можно объединить их в файл для коррекции реестра, а затем использовать на другом компьютере. Это пригодится сетевым администраторам и разработчикам программного обеспечения.
О Как ввести значения, не разрешенные программным обеспечением
Вы сконфигурировали программу поиска вирусов для сканирования системы один раз в неделю, а вам хочется, чтобы сканирование происходило каждые десять дней, но программа запускается только раз в неделю. Если вы найдете значение реестра, которое отвечает за этот интервал времени, то сможете ввести в него любое произвольное число.
О Как выполнить настройку при сбоях программного обеспечения
Если приложение не сохраняет нужные параметры в реестре, это можно исправить вручную, если знать, где именно они хранятся.
О Как запретить изменения некоторых настроек
Некоторые программы, включая Windows 7, «забывают» настройки, возвращаясь к значениям, установленным по умолчанию, без очевидной причины. Но как только вы узнаете, где хранится информация, вы сможете изменить разрешения (об этом немного позже), чтобы предотвратить дальнейшие изменения без вашего согласия.
Идея состоит в том, чтобы сделать моментальный «снимок» реестра до и после внесения изменений в Windows. При сравнении двух «снимков» легко найти, какие разделы и значения реестра были изменены. Вот как это можно сделать:
1. Закройте все приложения, кроме того, которое хотите проверить. Любые ненужные работающие приложения — включая те, которые находятся в области системных уведомлений, — могут менять информацию в реестре в любое время, внося неожиданные изменения.
2. Откройте редактор реестра и выберите ветвь HKEY_CURRENT_USER.
3. Сделайте Экспорт (Export) из меню Файл (File). Введите имя файла Userl. reg и сохраните его в любом удобном для вас месте.
4. Затем выберите ветвь HKEY_L0CAL_MACHINE и повторите шаг 3, сохранив файл под именем Machinel. reg.
5. Выполните изменение, которое хотите отследить.
Например, вы хотите найти значение, ответственное за показ скрытых файлов в Проводнике. В этом случае вы идете в Панель управления ► Параметры папок, выбираете вкладку Вид и в списке Дополнительные параметры включаете параметр Показывать скрытые файлы, папки и диски и нажимаете ОК.
6. Перед тем как сделать что-нибудь еще, переключаетесь обратно в редактор реестра и снова экспортируете ветви HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE в новые файлы, названные User2.reg и Machine2.reg соответственно, как описано ранее в шагах 2 и 3.
Итак, сейчас есть два снимка ветвей реестра, сделанные до и после изменений. Важно, что снимки сделаны сразу же до и после изменений так, что другие незначительные настройки, такие как изменения расположения окон, не включены в интересующие нас изменения.
7. Все, что необходимо сделать сейчас, — это «перегнать» измененную инфор-мацию в нужный формат. В Windows для сравнения файлов есть специальная утилита командной строки — fc.exe.
Есть несколько сторонних программ для Windows, которые проще и удобнее ис-*пользовать, например UltraEdit. Даже Microsoft Word умеет сравнивать тексты ' j v (только помните, что сохранять результаты нужно как обычный текст).
Откройте окно командной строки (введите cmd в поле поиска меню Пуск и нажмите Enter), а затем используйте команду cd для указания папки, в которой сохранены файлы реестра. Если вы сохранили их на Рабочий стол, введите
cd%userprofile%\desktop
8. Для операции сравнения введите следующие две строки:
fc /и userl.reg user2.reg > user.txt
fc /и machinel.reg machine2.reg > machine.txt
Утилита просканирует две пары файлов и выдаст различия. Знак > определяет вывод данных в текстовый файл user.txt для изменений в HKEY_CURRENT_USER и в текстовый файл machine.txt для изменений в HKEY_L0CAL_MACHINE.
9. Проверьте результаты. Файл user.txt должен выглядеть примерно так:
Comparing files userl.reg and USER2.REG ***** userl.reg
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\ Advanced]
"Hidden"=dword:00000001 " ShowCompColo r" =dword: 00000000 ***** USER2.REG
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Explorer\ Advanced]
"Hidden"=dword:00000002 "ShowCompColor"=dword: 00000000 *****
Из этого листинга можно увидеть» что изменилось только значение Hidden, находящееся где-то в ветви HKEY_CURRENT_USER. (Могут быть и другие изменения, но если вы их внимательно изучите, то обнаружите, что они могут быть проигнорированы.)
Обратите внимание, что для настройки, описанной на шаге 5, не было зафиксировано изменений в ветви HKEY_LOCAL_MACHINE, поэтому machine.txt содержит единственное сообщение: «FC: No differences encountered». Это означает, что изменения затронули только ветвь HKEY_CURRENT_USER.
10. Строки, окружающие измененную строку, также включены в текст, чтобы помочь найти расположение измененной строки в исходных файлах. Если повезет, то одна из соседних строк окажется заголовком раздела.
я \
-
м**.,
-
В рассматриваемом случае значение, которое изменилось, находилось в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\Advanced. Если вы посмотрите на этот раздел, то увидите, что он содержит и другие настройки, отсутствующие в диалоговом окне Параметры папок.
Если строки в квадратных скобках рядом нет, придется провести небольшой поиск. Для этого откройте один из исходных файлов (Userl.reg, User2. reg, Machinel.reg, Machine2.reg) и найдите строку, обнаруженную на шаге
9. Для этого примера найдите User2. reg "Hidden"=dword .*00000002, а затем поищите строку, помещенную в квадратные скобки ([...]), выше измененной строки. Она является названием раздела, содержащего значение Hidden.
*2s
-*7 Иногда изменения настроек приводят к созданию или удалению значения (или
раздела) реестра, то есть целый раздел может присутствовать только в одном ^ J из двух сохраненных файлов реестра. В этом случае вам, возможно, придется
* немного «покопаться» или попытаться настроить режим сравнения файлов для более легкого использования результатов сравнения.
11. Последний шаг может меняться. Если вы хотите создать файл для исправления реестра, то можно либо преобразовать результаты сравнения файлов в нужный формат, либо вернуться в редактор реестра и экспортировать подходящий раздел.
Удалите все строки из файла user.txt, кроме результата изменений. В итоге получится что-то похожее на это:
"Hidden"=dword:00000002
Затем вставьте перед этой строкой название раздела (в квадратных скобках). В нашем примере раздел был частью результатов сравнения файлов, и его можно оставить. В итоге должен получиться следующий текст:
[HKEY_CURRENT_USER\Software\Microsof t:\Wiridows\CurrentVersion\ Ехр1огег\ Advanced]
"Hiddenн=dword:00000002
И наконец, добавьте в начало файла текст: Windows Registry Editor Version
5.00, за которым должна следовать пустая строка:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\ Advanced]
"Hidden"=dword:00000002
По окончании сохраните его как новый файл с расширением имени файла .reg (например, My Neato Setting.reg).
Если изменения повлияли на ветвь HKEY_LOCAL_MACHINE, повторите этот шаг и для файла machine.txt. Можно объединить оба файла в один, но строка Windows
* j £ Registry Editor Version 5.00 должна остаться в единственном экземпляре.
Для некоторых настроек (как в нашем примере) необходимо сделать два файла реестра: первый — чтобы включить настройки, а второй — чтобы их выключить. Теперь для изменения настроек вам достаточно дважды щелкнуть мышкой на нужном файле.
Весь смысл залезания в реестр заключается в том, чтобы увидеть и изменить настройки, которые недоступны из Проводника, Панели управления или сотни других диалоговых окон, разбросанных по всей операционной системе. Кроме того, это еще и способ исправления интерфейса и добавления настроек.
Зачем вам это делать? Возможно, из-за настроек реестра, которые вы часто меняете, или, возможно, вы администрируете здание, полное компьютеров и вам хотелось бы показать какое-то свойство пользователям остальных компьютеров, но вы не хотите, чтобы они сами как-то вмешивались в работу реестра. (Или, наоборот, есть настройки, которые вы хотели бы спрятать от остальных пользователей.)
Зайдите в Панель управления ► Параметры папок ► Вид. С первого взгляда может показаться, что список дополнительных параметров представлен в неудобном формате (рис. 3.9), очевидно, что можно было бы разместить большее количество параметров. Однако это далекое от идеала представление способно подстраиваться под требования заказчика, разрешая Microsoft (или вам) легко добавлять или удалять элементы.
Вы, наверное, предположили, что Microsoft не сделала список параметров настраиваемым только для того, чтобы вы не смогли вмешаться в работу Windows. Этот список сделан гак, чтобы его можно было приспособить к разнообразным настройкам версий Windows (фактические параметры, представленные в нем, зависят от версии Windows 7). Но это не значит, что вы не можете его изменять.
Вы можете присоединить флажок или переключатель к любому параметру в реестре. Это позволяет делать изменения в реестре, без необходимости вмешиваться в его работу. А если вы являетесь разработчиком программного обеспечения, то можете добавить в это окно параметры собственной программы. Или получить простой доступ к спрятанным настройкам Windows, которые часто меняете.
Формат записи довольно хорошо продуман, так что вам не нужно быть программистом, чтобы его использовать. Вы можете добавить параметры в определенный раздел реестра, а затем привязать их к значениям из реестра. Вот как следует это делать:
1. Откройте редактор реестра.
2. Перейдите к HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ Explorer\Advanced\Folder.
Посмотрите на разделы внутри раздела Folder. Иерархическая структура воспроизведена в реестре, хотя элементы списка M017T появляться в порядке, отличном от их представления в реестре. Так получается из-за того, что названия в списке параметров папок не обязательно должны совпадать с названиями соответствующих разделов реестра, хотя в обоих случаях названия будут расположены в алфавитном порядке.
3. Воспользуйтесь возможностью выполнить резервное копирование всей ветви, выделив раздел Folder. Таким образом, можно будет проще восстановить значения по умолчанию без переустановки Windows.
4. На этом шаге вы можете убрать любые ненужные элементы, удалив соответствующие разделы из этой ветви. Значения параметра Text должно быть достаточно, чтобы пояснить, для чего он нужен.
5. Для добавления нового элемента необходимо создать новый раздел внутри раздела Folder. Назовите его любым осмысленным именем, не совпадающим с существующими именами разделов.
Некоторые настройки разделены на группы, например Скрытые файлы и папки, 0%^ содержащие переключатель. Группа — это раздел в реестре, такой как раздел Ф Hidden, который может содержать два или более подраздела. В групповом разделе необходимо задать заголовок и изображение значка, а затем указать в параметре Туре значение group. Поместите все необходимые элементы в этот подраздел. Если вы запутались, то используйте раздел Hidden в качестве образца.
6. Значения внутри каждого раздела определяют свойства соответствующей настройки.
Начните с добавления нового строкового значения для параметра Text, дважды щелкните на нем мышкой, чтобы ввести заголовок нового элемента. Теперь добавьте еще одно строковое значение с именем Туре и введите либо group, либо checkbox, либо radio. Эти значения определяют внешний вид новой настройки (табл. 3.2).
Таблица 3.2. Визуальные свойства элементов | ||
---|---|---|
Имязначения | Типданных | Описание содержания значения |
Туре | Строка | Параметр может принимать значение group, checkbox или radio, соответствующее папке, флажку или переключателю. Флажок — это «квадратик» меню, который может быть либо включен, либо выключен. Переключатель — «кружочек» меню, только один пункт внутри этой папки может быть выбран (существуют составные группы переключателей). Папки используются и для организации других параметров. Параметр Туре требуется всем элементам |
Имя Тип Описание содержания значения значения данных_ | ||
---|---|---|
Text | Строка | Это заголовок параметра, появляющийся в диалоговом окне. Он может быть каким угодно, но первое слово нужно написать с про-писной буквы, а точку не ставить. Параметр Text требуется всем элементам |
Bitmap | Строка | Параметр определяет изображение, используемое для элементов папки. Если его не указать, на месте рисунка появится некрасивая изогнутая стрелка. Формат записи — filename, index, где filename — это полный путь и имя файла, содержащего изображение, a index— это номер изображения (если файл содержит более одного изображения). Для отображения знакомой желтой папки введите значение %SystemRoot%\system32\Shell32.dll,4- Этот параметр не влияет на флажки и переключатели |
HelpID | Строка | Параметр указывает на документацию для соответствующего элемента. Если выбрать элемент и нажать F1, то этот параметр найдет нужную подсказку. Формат записи — filename#id, где filename — это имя файла .hip или .chm, a id — это числовой идентификатор подсказки, которую вы хотите вывести на экран. Чтобы показать оглавление справочного файла, следует опустить параметр id |
7. Добавьте элементы (табл. 3.3) в соответствующий раздел реестра. Для настройки переключателя и флажка вам потребуются HKeyRoot, RegPath, ValueName и CheckedValue. (Этот шаг можно пропустить, если элемент является группой.)
Таблица 3.3. Свойства элементов, связанные с реестром | ||
---|---|---|
Имя значения | Типданных | Описание содержания значения |
HKeyRoot | DWORD | Число, соответствующее пути в реестре. Используйте шестнадцатеричное число 80000000 для HKEY_ CLASSES_ROOT, 80000001 для HKEY_CURRENTJJSER, 80000002 для HKEY_LOCAL_MACHINE, 80000003 для HKEYJJSERS, 80000005 для HKEY_CURRENT_CONFIG. Параметр должен быть задан отдельно от пути, указанного в RegPath. Параметр обязателен для всех флажков и переключателей |
RegPath | Строка | Путь, описывающий нахождение параметра в реестре без учета корневого каталога (см. HKeyRoot). Для раздела HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion достаточно указать Software\ Microsoft\Windows\CurrentVersion. Параметр обязателен для всех флажков и переключателей |
ValueName | Строка | Имя параметра. В этом параметре хранится информация о том, включена или выключена опция в окне Параметры папок. Путь к разделу, содержащему это значение, задан параметрами RegPath и HKeyRoot Параметр обязателен для всех флажков и переключателей |
продолжение iP |
Таблица 3.3 (продолжение) | ||
Имя значения | Типданных | Описание содержания значения |
CheckedValue | Долженсоответствоватьпараметру | Параметр удерживает информацию о том, включен ли параметр, чтобы сохранить ее в реестре (заданном параметрами RegPath и ValueName). Если вы задаете параметр для Windows 9х/Ме и Windows 7/2000, используйте вместо этого значения параметры CheckedValueW95 и CheckedValueNT. Параметр обязателен для всех флажков и переключателей |
CheckedValueW95 | Долженсоответствоватьпараметру | Параметр заменяет CheckedValue, если вы описываете параметр, который будет использоваться и в системе Windows 9х/Ме, и в системе Windows 7/2000. Это значение содержит информацию, которая будет использована при запуске Windows 9х/Ме. Используется в паре с CheckedValueNT |
CheckedValueNT | Долженсоответствоватьпараметру | Параметр заменяет CheckedValue, если вы описываете параметр, который будет использоваться и в системе Windows 9х/Ме, и в системе Windows 7/2000. Используется в паре с CheckedValueW95 |
UnCheckedValue | Долженсоответствоватьпараметру | Параметр удерживает информацию, чтобы сохранить ее в реестре, когда опция выключена. Параметр может отсутствовать, при этом предполагается, что он равен нулю |
DefaultValue | Долженсоответствоватьпараметру | Данные, которые Windows присваивает, если в окне Параметры папок была нажата кнопка Восстановить значения по умолчанию. Параметр может отсутствовать, при этом предполагается, что он равен нулю |
т |
9. Закройте редактор реестра.
В следующий раз, когда вы будете открывать диалоговое окно Параметры папок, текущая информация будет сравниваться с CheckedValue и UnCheckedValue и список Дополнительных параметров будет настроен в соответствии с вашими пожеланиями. Другими словами, если вы все сделали правильно, каждый параметр в Дополнительных параметрах должен правильно отражать свое текущее состояние. Измените настройки, нажмите ОК, и соответствующие параметры будут прописаны в реестре.
Для воспроизведения настройки в любом другом месте в интерфейсе Windows или в интерфейсе другого приложения необходимо найти соответствующий раздел реестра, как описано в разделе «Расположение раздела настроек реестра».
Ввод данных в реестр — очень нудная задача, особенно если кнопка N на клавиатуре не работает. Но, слава богу, это не единственный способ добавления разделов и значений в реестр.
Файл реестра — это обычный текстовый файл с расширением .reg, который содержит одни или более чем один раздел или значение реестра. Двойной щелчок мышью на файле .reg запустит редактор реестра, который «свяжет» содержимое файла с реестром.
Такие файлы хорошо подходят для выполнения резервного копирования небольших частей реестра, для копирования настроек или разделов реестра на другие компьютеры.
Вы потратите час или немного больше на настройку Панели инструментов в приложении, которое используется работниками вашего офиса. Большинство программ хранят настройки Панели инструментов в реестре, поэтому можно использовать файл реестра не только для выполнения резервного копирования завершенной настройки, но и для передачи ее на все остальные компьютеры в офисе. Возможно, последние шесть месяцев вы провели, настраивая типы файла (об этом мы еще поговорим в этой главе), чтобы вдруг обнаружить, что недавно установленное приложение или обновление Windows стерло всю выполненную вами работу и сбросило все контекстные меню. Если вы предусмотрительно подготовили файл реестра, содержащий все сохраненные типы файлов, все, что остается сделать, -применить его.
1. Откройте редактор реестра и найдите ветвь, которую хотите экспортировать.
Эта ветвь может находиться где угодно, она может быть самой верхней либо спрятанной на десяток уровней в глубину Файл исправления реестра включает о J •, себя не только выбранную ветвь, но и все значения и подразделы. Не используйте •' больше, чем вам на самом деле необходимо.
2. В меню Файл (File) выберите Экспорт (Export), укажите имя файла, выберите папку назначения и нажмите ОК. Все значения и подразделы выбранной ветви будут сохранены в этом файле. Убедитесь, что имя файла имеет расширение .reg.
Больше мне сказать нечего по поводу того, как делать файлы реестра. Гораздо интереснее их изменять или создавать с нуля.
Поскольку файл реестра — это просто обычный текстовый файл, его можно редактировать в любом текстовом редакторе. Содержание файла будет похоже на текст, показанный в примере 3.1.
Пример 3.1. Содержание файла реестра, созданного из HKEY_CLASSES_ROOT\.txt
Windows Registry Editor Version 5.00 [ HKEY__CLASSES_ROOT\. txt ]
@="txtfile"
"PerceivedType"="text"
"Content Type"="text/plain"
[HKEY_CLASSES_ROOT\.txt\ShellNew]
,,ItemName"=,,@%SystemRoot%\\system32\\notepad.exe, -470"
"NullFile,,=M"
Первая строка, Windows registry Editor Version 5.00, сообщает Windows, что данный файл является файлом реестра. Не удаляйте эту строку. Остальная часть файла -это имена разделов и значения.
ОБРАТНАЯ СОВМЕСТИМОСТЬ
Файлы реестра Windows 95, 98 или Me могут быть импортированы в Windows 7 без проблем (если не обращать внимания на странные параметры, содержащиеся там).
Однако обратный процесс не так прост. Файлы реестра, сделанные в Windows 7, Vista, ХР, 2003 и 2000, используют кодовые таблицы Unicode и имеют заголовок, показывающий, что их версия не подходит для старого редактора реестра. Чтобы использовать такой файл в Windows 9х/Ме, вам необходимо будет решить две задачи.
Во-первых, заменить заголовок Windows Registry Editor Version 5.00 на REGEDIT4.
Затем нужно конвертировать файл .reg из Unicode в ASCII, чтобы предыдущие версии Windows могли его понять. Откройте этот файл в текстовом редакторе, в меню Файл (File) выберите Сохранить как (Save as), укажите новое имя, а затем выберите кодировку ANSI и сохраните файл.
Имена разделов указаны в скобках ([-.]) и определяют полный путь раздела, в котором должны храниться значения, приведенные далее. В каждой строке сначала указано имя значения (в кавычках), за которым следует знак равенства, а затем данные, хранящиеся в значении (также в кавычках). Имя @ указывает реестру поместить данные в значение (По умолчанию) ((Default)) (см. четвертую строку примера 3.1).
Вы можете изменять все что угодно в этом файле, но только если ничего не измените в формате. Эти изменения не войдут в силу, пока файл реестра не будет присоединен к реестру.
Зачем же нужно редактировать файлы реестра? Изменить значения реестра намного проще при помощи текстового редактора, а не редактора реестра, так как вам не нужно открывать, а затем закрывать значение каждого параметра.
Возможно, вы захотите быстро выполнить операцию поиска и замены в текстовом редакторе, а йотом применить эти изменения. Будьте осторожны, так как может произойти не то, чего вы ожидаете. Если вы измените шя параметра (слева от знака «равно») или имя раздела (строки в скобках), то ири импорте в реестр будут созданы новые параметры и разделы с именами, которые были указаны в файле, а старые параметры и разделы останутся на месте неизменными. Лучший вариант — использование Агента реестра, описанного в разделе «Поиск и замена данных реестра».
Особых требований по расположению разделов в файле реестра нет. Это означает, что можно комбинировать несколько файлов реестра в один и использовать их для восстановления любого количества разделов за один раз. Все, что нужно, — это скопировать и объединить текст отдельных файлов в один. Единственное, что следует сделать, кроме проверки того, что все разделы и параметры не пострадали, — это удалить все лишние строки Windows Registry Editor Version 5.00.
Если вы создаете файл реестра, который будет использоваться на других компьютерах, убедитесь, что полные имена путей указаны правильно. Если, например, в файле реестра использована ссылка D:\Windows\notepad.exe, она вызовет про-блемы на любом компьютере, где файл notepad.exe находится в папке С: \WindowsV Лучше всего использовать расширенные строковые значения вместе с системными переменными, например: %SystemRoot%\notepad.exe. Поскольку расширенные строковые параметры хранятся в бинарном виде в файлах реестра, то такая запись будет выглядеть следующим образом:
"0pen"=hex(2) : 26,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,
74.00.25.00.5c,00,6e, 00,6f,00,74,00,65,00,70,00,61,00,64,00,2e, 00,65,00,
78.00.65.00.00.00
Возможно, вы поняли, что намного легче редактировать расширяемые строковые значения в редакторе реестра, чем в любом текстовом редакторе, и, вероятно, захотите сделать такие исправления до экспортирования раздела в файл реестра. Если вам необходимо добавить двоичное или расширенное строковое значение в файл реестра, который вы уже начали редактировать, все, что нужно сделать, — это вернуться в редактор реестра, создать временный раздел и ввести новое значение. После этого просто экспортируйте раздел в новый файл, удалите его из реестра, а затем скопируйте и вставьте значение в редактируемый файл реестра.
Хотя редактор реестра не создает файлов для удаления разделов или значений реестра, такой файл легко сделать вручную. Для того чтобы удалить раздел при помощи файла реестра, поставьте знак «минус» перед именем раздела:
-[HKEY_CURRENT_USER\Control Panel\don’t load]
После использования файла удаляются раздел и все его значения вместе со всеми подразделами. Чтобы удалить одно значение из раздела, поставьте знак «минус» после знака равенства:
[HKEY_CURRENT_USER\Control Panel\don’t load]
"desk.cpl”=-
Эти методы работают, только если у вас есть обоснованная причина для удаления этих разделов. Подробнее об этом в разделе «Как запретить изменения в разделе реестра».
Для копирования информации из файла обратно в реестр его необходимо применить. Самый легкий способ сделать это — дважды щелкнуть мышкой на названии файла (неважно, запущен редактор реестра или нет).
Если на этой стадии вы видите подсказку, нажмите Продолжить. Отвечайте Да на вопрос, хотите ли вы добавить информацию из файла в реестр, и, наконец, нажмите ОК, когда увидите сообщение «Информация из MyPatch.reg была успешно внесена
в реестр». (Файл реестра можно применить и из редактора реестра, в меню Файл (File) выберите Импорт, найдите файл реестра и нажмите ОК.)
Чтобы применить файл реестра без излишних предупреждений, необходимо
I использовать командную строку В открытом окне Командной строки либо при j помощи меню Пуск ► Выполнить введите следующий текст:
regedit /s C:\folder\mypatch.reg
где С: \f older\mypatch. reg — это полный нугь и имя импортируемого файла реестра.
Если редактор реестра уже открыт, а один из разделов видоизменен при помощи только что примененного файла реестра, редактор реестра должен обновить экран автоматически и отобразить изменения. Если этого не происходит, нажмите F5 или используйте меню Вид ► Обновить.
При применении файла реестра происходит объединение разделов и значений, находящихся в файле реестра, с теми, которые хранятся в реестре. Любые разделы и значения в примененном файле, которые еще не существуют, будут созданы. Если раздел или значение уже существуют, то у них только поменяется содержание. Важно понимать, что если раздел, который вы обновляете, уже содержит одно или несколько значений, то эти значения останутся неизменными, если эти переменные не были упомянуты в использованном файле реестра.
Слово «безопасность» всегда было излюбленным термином компании Microsoft, и это не изменилось с появлением Windows 7. Настройки безопасности Windows оказываются более полезными при защите компьютера от самого себя, чем от любых подозрительных «злоумышленников».
Система прав доступа не просто защищает файлы и папки, она устанавливает ограничения на то, кто может читать и видоизменять элементы реестра. Это свойство очень полезно, но большинство людей даже не знают о его существовании. Можно заблокировать раздел реестра для того, чтобы служащие не устанавливали программное обеспечение на офисном компьютере, или для того, чтобы дети не смогли обойти функцию «родительский контроль». Права доступа позволяют блокировать сопоставления типов файлов, чтобы другие приложения не смогли их изменить. А блокируя разделы, содержащие список программ автозагрузки, можно защитить компьютер от вредоносных программ.
Вот как это делается:
1. Откройте редактор реестра и перейдите к разделу, который вы хотели бы защитить.
t*r-
Вы можете защищать только разделы, а не отдельные значения. Если вы заблокируете раздел для защиты одного из его значений, все значения в этом разделе
j £ будут заблокированы.
2. Щелкните правой кнопкой мышки на имени раздела и выберите пункт меню Разрешения.
3. Нажмите Дополнительно, а затем Добавить.
t*r-
Если кнопка Добавить неактивна, вам необходимо взять этот раздел «в собствен* Л •, I ность», закрыть окно Разрешения и повторно открыть его для внесения изменений ^ £ в права доступа для этого объекта.
4. В поле Введите имена объектов напечатайте Все, а затем нажмите ОК. (Значение Все охватывает учетные записи всех пользователей.)
5. В следующем окне Ввод права доступа для... укажите действия, которые вы хотите запретить (рис. 3.11).
6. Когда все готово, нажмите ОК в каждом из трех открытых диалоговых окон.
Изменения вступят в силу сразу же.
Возможно, вам понадобится ограничить права доступа определенного пользователя (или всех пользователей), но не добавлять элемент Запретить, как показано на рисунке. Проблема заключается в том, что таким способом не защитить приложение от изменений прав доступа другим пользователем и взлома. К тому же вам будет сложнее восстанавливать старые права доступа.
Windows дает приоритет столбцу Запретить над столбцом Разрешить, что означает возможность заблокировать раздел при помощи одного элемента столбца Запретить, даже если другое значение в столбце Разрешить дает пользователю разрешение на видоизменение элемента.
Итак, какие же разделы нужно блокировать и какие действия запрещать? Вот несколько примеров:
О Разрешите только чтение
После блокировки значений все же можно позволить приложениям и Windows их считывать, поставив флажок в столбце Запретить напротив строк Задание значения, Удаление и Смена владельца, как показано на рис. 3.11.
О Создайте полную блокировку
Чтобы ни одно приложение не могло считывать, видоизменять или удалять значение, поставьте флажок в столбце Запретить напротив строки Полный доступ.
О Избегайте создания новых оболочек
Чтобы приложения не создавали новые разделы внутри указанных, поставьте флажок в столбце Запретить напротив строки Создание подраздела. Так можно поступить с разделами типа файла, чтобы Проводник не добавлял эти приложения в список Создать.
О Укрепите безопасность на многопользовательских компьютерах
Чтобы другой пользователь не смог изменить политику безопасности, используйте процедуру, описанную в разделе «Расположение раздела настроек реестра», чтобы найти соответствующий раздел в реестре. Затем, вместо того чтобы поставить флажок в столбце Запретить, как это описано ранее, отмените все права доступа, которые позволяют кому-либо, кроме администратора, удалять, изменять или добавлять подразделы в раздел. Убедитесь, что существует по крайней мере одно правило для группы Администраторы (или для собственного аккаунта), которое разрешает Полный доступ.
О Блокировка типов файла
Утилита File Type Doctor позволяет блокировать типы файлов, чтобы избежать «кражу» их приложениями.
О Защита типов файлов от свойства UserChoice
Как описано во врезке «Зло переопределения UserChoice» на с. 169, Windows проигнорирует настройки пользовательского типа файла, если определенный раздел находится в HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\FileExts разделе. Чтобы такое не случилось снова, поставьте флажок в столбце Запретить напротив строки Создание подраздела. Это сразу же защитит все ваши типы файла, но еще необходимо будет удалить один или более из существующих элементов в разделе FileExts для восстановления индивидуальных типов файла. Подробнее об этом в разделе «Сопоставление типов файлов».
В некотором смысле реестр Windows — слабое звено в стабильности и устойчивости операционной системы. Его удивительно легко повредить, но очень трудно восстановить. И если вы не создадите собственную резервную копию, вам будет нелегко восстановить реестр в случае повреждения (в отличие от, скажем, DLL, которые можно взять непосредственно с установочного диска Windows). Испорченный реестр может привести к сбоям в работе Windows или вообще стать препятствием к запуску Windows.
Защита Системы (или Восстановление Системы) находится в Панели управления Система ► Защита системы (Control Panel ► System ► System Protection). Windows авто* матически создает точку восстановления один раз в день плюс каждый раз при установке приложения, драйвера устройства или любого обновления из Windows Update. Точки восстановления содержат основные системные файлы Windows и настройки реестра, хотя не ясно, насколько большая часть реестра копируется, а также невозможно восстановить только реестр — частично или полностью.
л
_I
Итак, в чем же проблема? Почему бы не заархивировать файлы реестра или не скопировать их на компакт-диск? Проблема в том, что в файлах, содержащих данные реестра (называемые кустами), постоянно происходит чтение и запись, поэтому Windows блокирует их, чтобы обезопасить от изменений, удаления и даже прямого чтения. (Хотя можно скопировать файл куста HKEY_CURRENT_USER, если выйти из системы, а затем войти в нее как другой пользователь.)
Это означает, что, если вы хотите создавать и восстанавливать резервные копии по своему желанию, необходимо использовать процедуру, подобную описанной ниже. Вы можете захотеть сделать это, например, непосредственно перед тем, как установить новую программу или драйвер устройства:
1. Откройте редактор реестра и закройте все ветви так, чтобы были видны только пять главных разделов корня.
2. Выделите HKEY_CURRENTJJSER.
3. Из меню Файл (File) выберите Экспорт (Export).
4. Из списка Тип файла (Save as type) выберите Файлы кустов реестра (*.*) (registry Hive Files).
5. Введите имя файла и дайте ему расширение .hive (например, hkcu.hive). RegEdft не будет делать это за вас, a Windows по умолчанию не распознает расширение .hive, но вам будет намного легче идентифицировать файлы, чем если бы у них не было никакого расширения, что является вариантом по умолчанию.
6. Выберите папку, в которой вы сохраните резервную копию, и щелкните Сохранить (Save).
7. Затем следует ветвь HKEY_LOCAL_MACHINE. Хотя редактор реестра позволит вам экспортировать все эти ветви в куст, можно экспортировать туда отдельные подветви. Просто повторите шаги 3-6 для этих разделов и соответствующих имен целевых файлов:
HKEY_LOCAL_MACHINE\HARDWARE ► hklm hardware.hive HKEY_LOCAL_MACHINE\SAM ► hklm saro.hive HKEY_LOCAL_MACHINE\SECURITY ► hklm security.hive HKEY_LOCAL_MACHINE\S0FTWARE ► hklm software.hive HKEY_LOCAL_MACHINE\SYSTEM ► hklm system.hive
8. Чтобы восстановить любую или все резервные копии и заменить текущий реестр данными из резервных файлов, выберите Импорт (Import) из меню Файл (File) редактора реестра. Выберите Файлы кустов реестра (*.*) (registry Hive Files) из непомеченного поля списка рядом с полем Имя файла (File name), задайте .hive-файл для импорта и щелкните Открыть(Ореп).
ЛОКАЛЬНОЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ
Самый простой тип резервного копирования реестра - это локальное резервное копирование (похоже на местное обезболивание). Вместо того чтобы копировать иесь реестр, вы просто копируете ту часть, с которой будете продолжать работать. Если вы что-то испортили, можно быстро и легко восстановить затронутые разделы, не касаясь ничего больше.
Например, вы хотите произвести изменения в разделе HKEY_CURRENT_USER\ Software\Microsoft\Windows\CurrentVersion\Run, который отвечает за выполнение программ ири запуске Windows. Просто откройте редактор реестра, перейдите к этому разделу и выберите Файл (File) ► Экспорт (Export). Введите имя файла и сохраните файл заплатки реестра на Рабочем столе. (См. «Экспорт и импорт файлов реестра.)
Сделали ошибку и хотите восстановить резервную копию? Просто сотрите раздел, который вы изменили, и дважды щелкните на файле реестра, чтобы загрузить его обратно. (Удаление раздела перед загрузкой из файла гарантирует, что никакие вновь добавленные записи не сохранятся.)
Конечно, с файлами реестра может быть трудно следить за реестром, особенно если вы изменили настройки и только две недели спустя обнаружили, что это вызвало проблему. В этом случае можно сделать простое резервное копирование прямо в реестре.
Прежде чем вы произведете любые изменения в реестре, сделайте файл реестра, как описано выше. Затем переименуйте раздел, в котором вы будете работать, добавив . backup в конец имени раздела. Например, если вы хотите произвести изменение в разделе:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
выделите раздел Run, нажмите кнопку F2 (или щелкните правой кнопкой и выберите Переименовать (Rename)) и поменяйте имя на Run.backup.
Затем сразу импортируйте только что сделанный файл реестра и сотрите этот файл реестра. У вас получатся два идентнчных раздела друг рядом с другом:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.backup
Теперь можно действовать: портить раздел Run до вашего полного удовлетворения и даже использовать лежащий рядом раздел Run.backup как удобную справку. Если вы когда-либо должны восстанавливать ваше резервное копирование — сегодня или спустя шесть месяцев, просто сотрите раздел Run и переименуйте Run.backup, обратно в Run.
См. главу 2 о быстром способе сделать локальное резервное копирование файлов, с которыми вы работаете.
Две вещи, которые необходимо отметить относительно этой процедуры резервного копирования. Дело в том, что файлы кустов реестра являются двоичными файлами, такими же, как и те, которые Windows использует ежедневно для хранения реестра. Если же экспортировать обычные файлы реестра — те, что вы получили бы, если бы выбрали на шаге 4 Файлы реестра (*.reg), — то они имеют текстовый формат и не могут быть легко восстановлены обратно в реестр. Это происходит потому, что редактор реестра объединяет файлы реестра с уже существующими данными, которые могут не затронуть ошибочные данные, как описано в разделе «Экспорт и импорт файлов реестра». Но если редактор реестра импортирует файлы куста, то он стирает существующие разделы из реестра перед размещением новых (сохраненных) данных.
Заплатки реестра могут быть удобны для того, чтобы восстанавливать отдельные разделы, как объяснено во врезке на с. 151.
Заметьте, что обсуждается только резервное копирование ветвей HKEY_CURRENT_USER И HKEY_LOCAL.MACHINE, a HKEY_CLASSES_ROOT, HKEYJJSERS и HKEY_CURRENT_CONFIG остаются с виду незащищенными. Это делается, потому что данные в НКЕY_CLASSЕS_R00T и HKEY_USERS дублируются в первых двух корневых разделах (HKLM и HKCU соответственно), a HKEY_CURRENT_CONFIG динамически сгенерирован и не сохраняется на жестком диске вообще. Для получения подробной информации см. «Структура реестра».
Почему важно знать, как Windows хранит данные реестра? Потому что если вы примените немного более усовершенствованный подход при копировании реестра1 у вас будет резервная копия, которую можно будет восстановить, даже если Windows не будет запускаться. Вот как это делается:
1. Откройте простой текстовый редактор, например Блокнот (Notepad).
2. Введите следующее в пустой документ:
if exist C:\Backups\COMPONENTS.OLD del C:\Backups\COMPONENTS.OLD
if exist C:\Backups\SAM.OLD del C:\Backups\SAM.OLD
if exist C:\Backups\SECURITY.OLD del C:\Backups\SECURITY.OLD
if exist C:\Backups\SOFTWARE.OLD del C:\Backups\SOFTWARE.OLD
if exist C:\Backups\SYSTEM.OLD del C:\Backups\SYSTEM.OLD
if exist C:\Backups\NTUSER.OLD del C:\Backups\NTUSER.OLD
ren C:\Backups\COMPONENTS COMPONENTS.OLD
ren C:\Backups\SAM SAM.OLD
ren C:\Backups\SECURITY SECURITY.OLD
ren C:\Backups\SOFTWARE SOFTWARE.OLD
ren C:\Backups\SYSTEM SYSTEM.OLD
ren C:\Backups\NTUSER.DAT NTUSER.OLD
REG SAVE HKLM\COMPONENTS C:\Backups\COMPONENTS
REG SAVE HKLM\SAM C:\Backups\SAM
REG SAVE HKLM\SECURITY C:\Backups\SECURITY
REG SAVE HKLMXSOFTWARE C:\Backups\SOFTWARE
REG SAVE HKLMXSYSTEM C:\Backups\SYSTEM REG SAVE HKCU C:\Backups\NTUSER.DAT
3. Сохраните файл где-нибудь, где вам удобно, например на Рабочем столе, и дайте ему расширение .bat (например, back up registry.bat).
4. Откройте Проводник, перейдите в Компьютер (Computer) и выберете диск С:. Создайте на диске папку с названием Backups. Если вы хотите хранить файлы резервного куста в другом месте, замените все 24 экземпляра C:\Backups в тексте, набранном в пункте 2, на полный путь к вашей папке для резервного копирования.
5. Чтобы запустить резервное копирование, щелкните правой кнопкой на файле back up registry.bat и выберите Запуск от имени администратора (Run as administrator). (См. главу 8, в которой поясняется, почему нельзя просто дважды щелкнуть на файле, чтобы запустить его.)
Чтобы запускать это резервное копирование автоматически каждый раз при запуске Windows, создайте ярлык для файла back up registry.bat в папке Автозагрузка в меню Пуск. Или, если вы обычно переводите свой компьютер в спящий режим вместо выключения, используйте функцию Планирование заданий (Scheduled Tasks) (глава 9), чтобы запланировать запуск резервного копирования через регулярные промежутки времени, скажем, через каждые три дня.
Ц'4
6. Теперь вы можете проявить сверхосторожность и записать скопированные файлы куста на компакт-диск или сетевой диск для безопасного хранения.
Итак, что является особенным в этой второй процедуре? Во-первых, она автоматизируется, используя малоизвестный инструмент реестра Командной строки REG.exe вместо редактора реестра, чтобы создать файлы куста. (Чтобы узнать больше о REG.exe, откройте окно Командной строки, введите reg /? и нажмите Enter.) Кроме того, автоматически архивируется предыдущее резервное копирование, таким образом, всегда поддерживаются два набора резервных копий файлов, и этот трюк выполнен простыми командами пакетных файлов (подробнее
о пакетных файлах см. в главе 9).
Наиболее важно, однако, что вместо одного создается пять отдельных файлов куста из ветви HKEY_LOCAL_MACHINE, по одному для каждой ветви, кроме HARDWARE, который генерируется динамически. В результате резервные копии файла, которые вы получите, будут такими же, как те, которые Windows обычно использует, чтобы хранить реестр на жестком диске.
Windows хранит активные файлы куста, относящиеся к HKEY_L0CAL_MACHINE, в папке \Windows\System32\Config. Исключение составляет ветвь HKEY_CURRENT_USER, хранящаяся в файле NTUSER.DAT, расположенном в каталоге пользователя (обычно \ Users\{MM« пользователя», f
Просматривая папки, вы можете обнаружить \Windows\System32\config\ RegBac к. Проверьте даты файлов в папке RegBack, и вы наверняка увидите, что они недавние - это вчерашние или сегодняшние резервные копии куста файлов --HKEY LOCAL_MACHINE.
Хотя Windows регулярно создает эти резервные копии, они не являются ни полным» (не включается ветвь HKEY_CURRENT_USER), ни столь же полезными, как резервное копирование, которое вы делаете самостоятельно. Например, проблема, которая препятствует тому, чтобы Windows загрузился, вероятно, затронет автоматические резервные копии, но не обязательно — те резервные копии, которые вы сделали вручную три дня назад, непосредственно перед тем, как установили приложение.
Все это означает, что можно восстановить реестр из резервной копии разными способами. Конечно, можно всегда использовать Файл ► Импорт (File ► Import) в редакторе реестра, как описано ранее в этом разделе, но это работает, только если Windows запускается.
Если Windows не запускается и вы подозреваете, что произошел незначительный сбой реестра, то можно попробовать восстановить реестр из резервных копий шести кустов.
1. Вставьте установочный диск Windows 7 в дисковод и запустите компьютер.
См. главу 1, если компьютер не загружается от вашего компакт-диска или если доступен только «диск восстановления*, созданный производителем.
t*r-
j
2. Нажмите Next на первом экране инсталлятора и выберите Repair your computer на второй странице.
3. В окне System Recovery Options выберите Microsoft Windows 7 и затем нажмите Next
4. Выберите режим командной строки.
5. В появившемся окне командной строки попытайтесь скопировать текущее состояние реестра. Затем введите следующие команды, чтобы восстановить реестр из сохраненных файлов:
REG RESTORE HKLM\COMPONENTS C:\Backups\COMPONENTS REG RESTORE HKLM\SAM C:\Backups\SAM REG RESTORE HKLM\SECURITY C:\Backups\SECURITY REG RESTORE HKLM\SOFTWARE C:\Backups\SOFTWARE REG RESTORE HKLM\SYSTEM C:\Backups\SYSTEM REG RESTORE HKCU C:\Backups\NTUSER.DAT
Если вы хотите восстановить только часть реестра, можно пропустить несколько строк.
М?« А • v
__
6. Извлеките установочный диск и перезапустите компьютер.
При некоторой удаче Windows запустится в обычном режиме. Если этого не произошло, ваше новое резервное копирование оказалось дефектным либо проблема была в чем-то другом. Если вы подозреваете, что вам может помочь более старое резервное копирование, на шаге 5 к именам файлов добавьте расширение .OLD:
REG RESTORE HKLM\COMPONENTS C:\Backups\COMPONENTS.OLD
Если Windows все равно не запускается, попытайтесь переустановить систему (см. главу 1).
Возможно, реестр достаточно сильно поврежден или был поврежден файл REG.exe. В этом случае попытайтесь следующим образом заменить активные файлы куста своими резервными копиями:
1. Откройте режим командной строки, как было описано в пунктах 1-4.
2. Введите такие команды, чтобы скопировать файлы:
сору C:\Backups\COMPONENTS C:\Windows\System32\Config сору С: \Backups\SAM С: \Windows\System32\Config сору C:\Backups\SECURITY C:\Windows\System32\Config сору C:\Backups\SOFTWARE C:\Windows\System32\Config сору C:\Backups\SYSTEM C:\Windows\System32\Config сору C:\Backups\NTUSER.DAT C:\Users\your_user_folder\
где yourjjserJolder является именем вашей пользовательской папки, которое может совпадать или не совпадать с вашим именем пользователя. Если вы не знаете имя папки, введите dir C:\users, чтобы увидеть все пользовательские папки на вашем компьютере. Если в имени папки есть пробелы, добавьте кавычки: сору C:\Backups\NTUSER.DAT "C:\Users\Phillip 3. Fry”
3. Когда все сделано, извлеките установочный диск и перезапустите компьютер.
ДРУГИЕ ПУТИ РЕЗЕРВНОГО КОПИРОВАНИЯ РЕЕСТРА WINDOWS
Вышеупомянутые автоматические резервные копии файлов куста, сохраненные в папке \Windows\System32\config\RegBack, представляют собой только одну из нескольких систем отказоустойчивости, встроенных в Windows 7.
Имеется способ отменить плохую установку драйвера оборудования без резервного копирования или восстановления реестра. Просто откройте Диспетчер устройств, щелкните правой кнопкой по неисправному устройству, выберите Свойства (Properties), затем вкладку Драйвер (Driver) и щелкните Откатить (Roll Back Driver). Если это не работает, щелкните правой кнопкой на устройстве и выберите Удалить (Uninstall). В ответ на запрос подтвердите, что вы хотите стереть файлы драйвера. Затем отсоедините и повторно подключите устройство или перезапустите Windows, если повторное подключение невозможно.
Можно удалить отказавшее программное обеспечение с помощью инструмента Программы и компоненты (Programs and Features) в Панели управления, но только если деинсталлятор программы работает. В противном случае ищите в сети название программы и слово «удаление», чтобы узнать, существуют ли какие-либо специальные инструменты или процедуры для программы, которую вы пытаетесь удалить.
Конечно, ни один из этих инструментов не принесет пользы, если Windows не будет запускаться. Есть также запись под названием Последняя удачная конфигурация (Last Known Good Configuration) в меню запуска, которое показывается, если последнее закрытие Windows прошло некорректно или вы нажимали F8 перед началом загрузки Windows. Теоретически эта функция запускает Windows с более ранним набором драйверов оборудования и настроек, взятых из последней успешной загрузки. Однако Windows 7 с трудом понимает, что такое «удачная загрузка»-, и не в состоянии обнаружить более раннюю конфигурацию, которая решает проблему или вообще работает. Данный способ стоит попробовать, если у вас нет резервной кошт реестра, но не надейтесь на чудо.
Чтобы просмотреть реестр удаленного компьютера, можно использовать редактор реестра подобно тому, как вы используете Проводник, чтобы просмотреть удаленный жесткий диск. Разработанная для того, чтобы администрировать рабочие станции и серверы, находящиеся очень далеко, эта функция также очень полезна для восстановления компьютера, зараженного вредоносным программным обеспечением, которое предотвращает прямой доступ к реестру.
Вот как это можно сделать:
1. На удаленном компьютере — том, с которым вы хотите соединиться, — откройте окно Службы (Services); в меню Пуск в ноле поиска введите services.msc и нажмите Enter.
2. Выберите в списке службу Удаленный реестр (Remote Registry) и щелкните на зеленой стрелке Запуск службы (Start) иа панели инструментов (или щелкните правой кнопкой на службе и выберите Start (Запустить).
I Если вы будете удаленно редактировать реестр этого компьютера часто, щелк-
I ните правой кнопкой на службе Удаленный реестр (Remote Registry), выберите д*, Свойства (Properties) и из списка Т ипов запуска (Startup type) выберите Автоматически (Automatic). Тогда запуск будет происходить автоматически при запуске Windows и служба будет готова к использованию в любой момент.
3. Повторите иа локальном компьютере шаги 1 и 2.
4. Запустите редактор реестра на локальном компьютере и из меню Файл (File) выберите Подключить сетевой реестр (Connect Remote Registry).
5. Когда появится окно Выбор:Компьютер (Select Computer), введите в поле Введите имена выбираемых объектов (Enter the object name to select) имя удаленного компьютера и нажмите ОК.
6. В ответ на запрос введите имя пользователя и пароль учетной записи уровня администратора на удаленном компьютере.
7. Через несколько мгновений ниже локального реестра появятся две ветви реестра удаленного компьютера, как показано на рис. 3.12.
Обратите внимание на то, что в удаленном реестре видны только ветви HKEY_ LOCAL_MACHINE и HKEYJJSERS. Но так как другие корневые ветви HKEY_CURRENT_ USER и HKEY_CLASSES_ROOT - это ссылки на подразделы, вам доступен весь реестр. Чтобы получить доступ к удаленной ветви HKEY_CLASSES_ROOT, переместитесь в HKEY_LOCAL_MACHINE\Software\Classes.
8. Когда вы закончите работу с удаленным реестром, щелкните правой кнопкой на имени удаленного компьютера в дереве редактора реестра и выберите Отключить (Disconnect).
$ Редактор реестр* | ; ТэШЙИЙ |
Й»ЙЛ ОрЭВК! Вид | £flpiH6 |
Ь Я* Компьклср-* 9 АЬьк>-$i WSY.lQCAl.MACHJKt► ,THffiv.usasl | Им* 7*г» !' L„ ’Г... —l Т. h ... -Г . . ... ■ _J |
AtofcSHKEY.USERS i | |
Рис. 3.12. Соединение с реестром удаленного компьютера и появление основания дерева в редакторе Реестра |
Наиболее вероятная проблема, с которой вы встретитесь, получая доступ к удаленному реестру, — это отказ в доступе, что может означать все что угодно. Если ошибка возникает при входе в систему, значит, вы неправильно ввели имя пользователя или пароль на шаге 6 (очевидно). Как только вы зарегистрированы, любые такие ошибки вызываются ограничениями системы безопасности (см. «Как запретить изменения в разделе реестра»).
Во-первых, ветвь, к которой вы пытаетесь получить доступ, должна разрешать чтение и перезапись для пользователя с учетной записью, соответствующей вашему входу в систему (снова шаг 6).
Во-вторых, специальный раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\SecurePipeServers\winreg должен быть доступен для чтения у обеих учетных записей: учетной записи входа (шаг 6) и учетной записи пользователя, под которой работает служба Удаленный Реестр (Remote Registry service) (шаг 2). По умолчанию используется учетная запись пользователя Локальная служба (Local Service); проверьте это, щелкнув правой кнопкой на службе Удаленный Реестр (Remote Registry service) в окне Службы (Service), выбирая Свойства (Properties), а затем вкладку Вход в систему (Log On).
Можно ограничить удаленный доступ к реестру для определенных пользователей, отказав им в доступе для чтения к вышеупомянутому разделу WinReg.
Сопоставление типов файлов — это связи между документами и приложениями, которые они используют. Самое стандартное использование этой функции состоит в том, чтобы научить Windows, что надо открыть Блокнот (Notepad), когда вы дважды щелкаете на значке текстового документа, или открыть форму онлайн-заказа, если вы щелкаете на ссылке в электронном письме со спамом.
Можно было бы предположить, что текстовый файл так или иначе знает, что он документ Блокнота, но это не так. Вместо этого Windows решает, как обработать файл, ориентируясь исключительно на его расширение. Расширение — эго группа символов (обычно три), которые следуют за точкой в большинстве имен файлов. Например, расширением файла Readme.txt является .txt — файл текста без фор* матирования. Аналогично, расширение Resume.docx — это .docx, которое говорит Windows, что этот файл — документ в формате Microsoft Word. Некоторые подробности по этому вопросу размещены далее во врезке «Расширения файлов: пример исключений из правила».
РАСШИРЕНИЯ ФАЙЛОВ: ПРИМЕР ИСКЛЮЧЕНИЙ ИЗ ПРАВИЛА
Может показаться, что из правила о расширениях файлов есть исключения: файлы, которые, несмотря на свои расширения, кажется, знают, какие приложения их создали. Например, откройте Microsoft Excel и сохраните рабочий лист как веб-страницу (*.htm;*.html), и у получившегося файла в Проводнике будет значок Excel, хотя у остальных ваших .html-файлов есть значок, соответствующий вашему веб-браузеру по умолчанию. Кроме того, щелкните правой кнопкой на файле и выберите Редактирование, и файл откроется в Excel, а не в HTML-редакторе по умолчанию.
Происходящее является не исключением из правила «расширение определяет тип», а скорее его следствием. Когда вы устанавливаете Microsoft Office, файл msohevi.dll, среди прочего, регистрируется с некоторыми из типов файлов в реестре. В дальнейшем Windows будет просматривать в каждом .html-файле тэги в заголовке:
Если бы вы открыли файл с помощью Блокнота (Notepad) и стерли эти две строки, то нарушили бы ссылку и файл стал бы обыкновенным .htinl-файлом, с соответствующим значком и прочим. Или если вы измените расширение файла на, скажем, .txt, то Windows не будет проверять файл, а будет работать с ним как с любым другим .txt-файлом.
Некоторые могут возразить, что это несправедливо со стороны Microsoft — так изменить правила и создавать файлы, которые ведут себя не так, как все другие файлы их типа. Если вы — один из них, то можете стереть разделы реестра, указывающие на Office DLL в .html-типе файла, что не только разорвет ссылку на Excel, но и воспрепятствует тому, чтобы Windows или Excel ее постоянно восстанавливали. (Подробнее IconHandlers обсуждается далее в этой главе.) Хотя таким образом вы ухудшите функциональность (увы!), зато восстановите справедливость и, что более важно, реализуете ваши собственные предпочтения, которые Microsoft игнорирует в противном случае.
Может показаться глупым, что большая часть возможностей Windows открывать файлы основана на таком легко повреждаемом параметре, как имя файла, но эта схема имеет свои преимущества. Например, очень легко изменить программу, ко* торая используется для открытия всех ваших цифровых фотографий, и, чтобы сделать это, нет необходимости модифицировать каждый из .jpg-файлов. Кроме того, легко предсказать, что происходит каждый раз, когда вы дважды щелкаете на .tif-файле, что, конечно, удобно.
Но есть и обратная сторона. Во-первых, приложение легко может быть установлено как приложение по умолчанию для любого тина файла на вашем компьютере, и немедленно перехватит на себя целую группу файлов. В Windows 7 имеется механизм для борьбы с этим — подробнее на с. 168 «Зло переопределения UserChoice» — но его использование может повредить ваши пользовательские типы файлов и элементы контекстного меню.
Другой дефект в системе расширений файлов Windows — это то, что Проводник по умолчанию скрывает расширения файлов, поэтому файл Invoice.xlsx появляется просто как Invoice. К счастью, это достаточно легко изменить; откройте Параметры папок (Folder Options) в Панели управления (или щелкните на Упорядочить ► Параметры папок и поиска (Organize ► Folder and Search Options) в Проводнике). В окне Параметры папок, выберите вкладку Вид (View), отключите Скрывать расширения для зарегистрированных типов файлов (Hide extensions for known file types) и нажмите ОК.
Если Windows показывает расширения файлов, легче определить, с какими файлами вы имеете дело. Вместо файла, названного просто recipe, вы можете увидеть recipe, tif, если это отсканированный рецепт, recipe.pdf— если это файл Acrobat с рецептом, или recipe.exe — если это троянский конь, которого вы только что получили по электронной почте. Конечно, необходимо открыть файл, чтобы увидеть, делаете вы пирожки или взрывчатые вещества, но по крайней мере можно предугадать действия соперника, зная, какое приложение откроется: вы будете знать, необходимо ли преобразовать файл в другой формат, прежде чем отправить его на ваш блог «Анархия с шоколадной крошкой».
Наличие видимых расширений означает, что можно изменить восприятие
- - , Windows типа файла, просто переименовав его расширение. (Обратите внима-
I i?’ ние»что изменение расширения файла не изменяет его содержание или формат, а влияет только на взаимодействие с ним Windows.) Скрывать расширения файлов Microsoft начинала в Windows 95 (в тщетной попытке сделать Windows более легкой для использования), но только в Windows Vista Microsoft сделала тонкое, но важное (и удобное) изменение. В Vista и в Windows 7 при переименовании файла Проводник выделяет имя файла только до точки, разрешая ввести новое имя, но не изменяя его расширение.
Так как только зарегистрированные расширения файла скрываются по умолчанию, recipe.pdf появляется как recipe.pdf, пока вы не установили Adobe Acrobat Reader. Дважды щелкните .pdf-файл без этого приложения, и Windows спросит вас, что вы хотите сделать, как показано на рис. 3.13. Не удивляйтесь, если вы не получите полезной информации после щелчка на Выполнить поиск программы в MHTepHere(Use the Web service to find the correct program) в окне, показанном на рис. 3.13. Лучшие ресурсы для идентификации незнакомых расширений файлов находятся по адресам: http:// wikipe dia.org/wiki/list_of_file_fbr mats и http://filext.com.
Как только программа установки Acrobat зарегистрирует .pdf-тип файла, .pdf-pac-ширения исчезают в Проводнике и файл показывается просто как recipe, кроме случая, когда вы решите сделать расширения файлов видимыми, как описано выше. Но что означает «зарегистрировать тип файла»?
Зарегистрированный тип файла определяется несколькими разделами и значениями в реестре, которые Проводник читает в режиме реального времени, чтобы обработать документы. Зарегистрируйте новый тип файла, и Проводник сразу же будет знать, что сделать с файлами этого типа.
Обычно новые типы файлов регистрирует программа установки или приложение, однако любой (в том числе любая программа) может добавить новые или модифицировать существующие сопоставления типов файла. Настройка типов файлов компьютера является одним из самых эффективных способов сэкономить время и уменьшить раздражающие вопросы Windows, но в Windows 7 это не так просто сделать. Поэтому вам надо знать, в чем причииа этого, если вы собираетесь взять дело в свои руки.
Все начинается с открытия единственного раздела в HKEY_CLASSES_ROOT, названного по названию расширения файла (включая точку). Значение (По умолчанию) в этом разделе содержит имя другого раздела, в котором есть все, что относится к этому типу файла. Например, откройте редактор реестра и посмотрите на эти разделы:
HKEY_CLASSES_ROOT\.log НК Е Y_C LASS ES_ROOT\.scp НК ЕY_C LASS Е S_ROOT\.txt
У каждого есть значение (По умолчанию), которое содержит слово txtfile. Таким образом, каждое расширение файла указывает на файл типа txtfile, который находится в HKEY_CLASSES_ROOT\txtfile. И в этом txtfile-разделе находится все содержание. См. некоторые подробности во врезке «Специальные разделы типов файлов».
Система, которую Windows использует, чтобы следить за типами файла, существовала в течение многих лет и пережила различные версии Windows. В результате в ней есть множество противоречий. Хотя большинство типов файлов соответствует структуре, изложенной на этих страницах, не удивляйтесь, если вы увидите что-то, что не соответствует описанному, но все еще работает.
СПЕЦИАЛЬНЫЕ РАЗДЕЛЫ ТИПОВ ФАЙЛОВ
В реестре есть несколько специальных типов файла, каждый из которых работает как стандартный тип файла, несмотря на наличие намного большего контекста. А именно:
HKEY__CLASSES_ROOT\*
раздел реестра звездочка (*), удобно помещенный в редакторе реестра в начале ветви HKEY_CLASSES_ROOT, определяет действия и расширения для всех файлов (но не папок или дисков). Если вы хотите выделить элемент контекстного меню, эта возможность находится в подразделе Shell или ShellEx раздела *.
Добавив новый раздел в HKEY_CLASSES_ROOT\*\Shell, вы добавите элемент контекстного меню для всех файлов на компьютере. Например, вы можете добавить раздел под названием OpenlnNotepad, ввести Открыть в Блокноте в значение раздела (По умолчанию) и затем добавить горячую клавишу, которая указывает на notepad.exe. После этого щелкните правой кнопкой па любом файле и вы-берите Открыть в Блокноте, чтобы просмотреть файл в новом окне Блокнота. Более подробную информацию см. в разделе «Настройка контекстных меню для файлов».
HKEY_CLASSES_ROOT\AllFilesystemObjects
Эта ветвь работает аналогично *, описанной выше, за исключением того, что записи применяются ко всем файлам, папкам и дискам (не только к файлам). HKEY_CLASSES_ROOT\Unknown
Этот раздел используется, чтобы определить свойство всех файлов с незарегистрированными расширениями. По умолчанию здесь есть только один тип файла, openas, который отвечает за диалоговое окно, показанное на рис. 3.13. Можно, конечно, добавить новые действия или изменить здесь действия по умолчанию. Например, вы можете работать с набором документов различных типов, неизвестных Windows, и открывать их все по умолчанию в вашем любимом текстовом редакторе, избегая необходимости предварительно регистрировать все эти типы.
У типичного раздела типа файлов (например, НКЕY_CLASSES_ROOT\txtfile) есть несколько значений и подразделов, большинство которых показано на рис. 3.14.
Первое значение (По умолчанию) содержит показываемое название типа, которое выводится в столбце Тип (Туре) в Проводнике.
Если в этом разделе будет присутствовать значение с названием AlwaysShowExt, то расширение для этого типа файла будет выведено на экран в Проводнике, даже если вы выбрали «скрывать расширения файлов» (установка, объясненная выше). Аналогично значение NeverShowExt дает Проводнику команду всегда скрывать расширения файлов, независимо от вашего предпочтения. Эго значение появляется в нескольких разделах типа файла — для Ярлыки (Windows Shortcuts) (.Ink-файлы), Интернет-ярлыки (Internet Shortcuts) (.url-файлы) и Команды Проводника (Explorer Commands) (.scf-файлы).
Вы увидите также некоторые другие значения, такие как EdftFlags, FriendlyTypeName, и InfoTip, которые менее значительны, однако содержимое следующих трех подразделов отвечает за основную красоту:
О Defaultlcon
Значение (По умолчанию) в этом разделе содержит полный путь и имя файла, содержащего значок, использующийся для всех файлов данного типа. (См, далее более подробную информацию о значках.)
О Shell
Каждый подраздел Shell соответствует элементу (действию) в файле контекстного меню. О том, как структурирована эта ветвь, см. «Настройка контекстных меню для файлов».
О ShellEx
Ветвь ShellEx перечисляет расширения Проводника—дополнительные программы, разработанные для взаимодействия с Проводником и добавления функций. Эта ветвь рассматривается вр врезке «Исправление ненадежных расширений оболочки» на с. 172.
Теперь, когда вы знаете, где находятся все основные разделы, вы можете использовать редактор реестра. После внесения изменений не забудьте принять некоторые меры для того, чтобы защитить ваши специализированные типы файла от агрессивных программ установки приложений, как описано в разделе «Заблокируйте свои типы файла».
Для каждого типа файла по умолчанию существует значок, который отображается для всех файлов данного типа. Однако Windows 7 не предлагает другого способа указать собственный значок, кроме как через редактирование реестра вручную. А ведь такая возможность присутствовала раньше во всех версиях Windows до Vista.
Значение (По умолчанию) в разделе Defaultlcon содержит полный путь и имя файла, содержащего значок. Часто в нем содержится указание на приложение, которое открывает файл (например, excel.exe для xls-файлов), но иногда можно найти ссылку на .dll- или .ico-файл, содержащий набор значков. За именем файла следует запятая и индекс, который указывает номер отображаемого значка. Например:
C:\Program Files\Photoshop\Photoshop.exe, 15
указывает на файл Photoshop.exe, расположенный в папке C:\Program Files\Photoshop, и на 16-й значок в этом файле (нумерация значков начинается нулем). Иногда в разделе Defaultlcon можно увидеть что-то вроде
%SystemRoot%\system32\wmploc. dll, -731
Здесь %SystemRoot% — это переменная, которая представляет папку Windows (обычно C:\Windows). Когда значение (По умолчанию), в котором хранится эта информация, помещается в расширяемое строковое значение (описано в разделе «Суть реестра — его значения»), Windows, прежде чем получить значок, преобразовывает имя файла в C:\Windows\System32\wmploc.dll. Иногда можно увидеть после имени файла и отрицательную величину (здесь -731), которая представляет ID ресурса (resource ID) используемого значка, — в противоположность положительному значению, указывающему индекс (позицию) значка, как описано ранее.
■9&Г-
Трюк, который можно применить для некоторых файлов изображений, например #«, I ico, — установить Defaultlcon значение (По умолчанию) «%1» (вводить с кавычка-^ ^ •, ми). Эта «самоссылка» указывает Проводнику использовать встроенное в файл ' изображение в качестве значка файла. Хотя это работает и для некоторых других форматов изображений, эта функция оказалась вытеснена IconHandlers.
В большинстве случаев можно задать свой значок для конкретного типа файла, указав полный путь к файлу .exe, .dll, .ico или .bmp в значении (По умолчанию) раздела Defaultlcon. (Подсказка: некоторые хорошие значки находятся в \Windows\System32\ shell32.dll.) Укажите число — номер значка, который следует отображать, или не указывайте, чтобы использовать первый значок в файле. В некоторых случаях Проводник распознает изменение сразу же, в связи с тем что он кэширует значки; возможно, понадобится перезапустить Windows, чтобы эти изменения полностью вступили в силу.
Самым легким способом изменить значок для типа файла является применение стороннего инструмента, такого как Fileiype Doctor, обсуждаемого в следующем разделе.
SiU
Единственный случай, когда Windows не будет обращать внимание на значок, указанный в разделе Defaultlcon, — это когда задействован IconHandler, который генерирует динамичные значки (рис. 3.15), обычно показывая миниатюры содержимого файлов вместо статических значков.
IconHandler — это программа, которая понимает формат файла (обычно файл .dll в папке программы приложения), с которым файл связывается. Например, Adobe Acrobat (версия 7.0 и позже) использует эту функцию, чтобы облегчить предварительный просмотр миниатюр файлов .pdf. Для расширения .pdf IconHandler приложения Acrobat может быть указан в любом из следующих разделов реестра:
HKEY_CLASSES_ROOT\.pdf\ShellEx\IconHandler
HKEY_CLA5SES_R00T\. pdf \ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1} HKEY_CLASSES_ROOT\AcroExch. Document. 7\ShellEx\IconHandler HKEY_CLASSES_ROOT\AcroExch.Document.7\ShellEx \{BB2E617C-0920-llDl-9A0B00C04FC2D6C1)
HKEY_CLASSES_ROOT\SystemFileAssociations\. pdf\ShellEx\IconHandler HKEY_
CLASSES_ROOT\SystemFileAssociations\.pdf\ShellEx\{BB2E617C-0920-llD19A0B-
00C04FC2D6C1}
HKEY_CLASSES_ROOT\SystemFileAssociations\image\ShellEx\IconHandler HKEY_
CLASSES_ROOT\SystemFileAssociations\image\ShellEx\{BB2E617C-0920-llD19A0B-
00C04FC2D6C1)
Выясняется, что Adobe выбрал четвертый из этих разделов, чтобы зарегистрировать свой IconHandler. Значение (По умолчанию) в этом разделе содержит 38-значный класс ID, который указывает на запись в HKEY_CLASSES_ROOT\CLSID, содержащую подробные данные о файле .dll.
Если ссылка на IconHandler содержится в одном из разделов под названием IconHandler, то указанный в нем .dll-файл отвечает за динамически сгенериро-^ ванный значок. Но более новые программы для ссылки на IconHandler будут ис-
% пользовать раздел {BB2E617C-0920-lldl-9A0B-00C04FC2D6Cl}. Для получения дополнительной информации о разделе SystemFileAssociations см. «Расширение возможностей ваших типов файлов».
Хотите заменить динамические значки статическими? Найдите ссылку на IconHandler и сотрите раздел IconHandler или раздел {BB2E617C-0920-lldl-9A0B-00C04FC2D6Cl}-это отключит IconHandler и позволит Проводнику использовать статический значок, определенный в разделе Defaultlcon.
Но что, если вы хотите исправить тип файла, для которого предварительный просмотр значка перестал работать? Часто для того, чтобы восстановить разделы
IconHandler, проще переустановить ассоциированное приложение, но если это приложение — непосредственно Windows, то вы, вероятно, захотите выполнить следующие шаги, чтобы восстановить предварительный просмотр значка на вашем компьютере:
1. Откройте редактор реестра.
2. Перейдите к разделу реестра для расширения файла, которое вы хотите изменить. Например, если вы хотите включить предварительный просмотр значка для файлов TIFF, переместитесь в HKEY_CLASSES_ROOT\.tif.
3. Найдите в разделе .tif значение PerceivedType. Если его там нет, выберите Правка ► Создать ► Строковый параметр (Edit ► New ► String Value) и введите имя PerceivedType.
4. Дважды щелкните на PerceivedType, введите image и нажмите ОК.
5. Затем переместитесь к HKEY_CLASSES_ROOT\SystemFileAssociations\image. Как описано в разделе «Расширение возможностей ваших типов файлов», этот раздел обеспечивает общие свойства для всех файлов изображений, таких как .jpg, .bmp и .tif.
6. Откройте раздел ShellEx и найдите раздел, названный {BB2E6l7C-0920-lldi-9А 0B-00C04FC2D6C1}. Если его там нет, выберите Правка ► Создать ► Раздел (Edit ► New ► Key) и введите имя нового раздела {BB2E617C-0920-lldl-9A0B-00C04FC2D6C1}.
7. Откройте раздел {BB2E617C-0920-lldl-9A0B-00C04FC2D6Cl} и дважды щелкните на значении (По умолчанию). Введите {3F30C968-480A-4C6C-862D-EFC0897BB84B} и нажмите ОК.
Из двух ID-классов, упомянутых здесь, {BB2E617C-0920-lldl-9A0B-00C04FC2D6C1} соединяет тип файла с областью просмотра Провод-^ dm% ннка> a {3F30C968-480A-4C6C-862D-EFC0897BB84B} указывает на PhotoMetadataHandler. dll - собственный файл Windows, ответственный за генерирование предварительного просмотра значков для всех поддерживаемых форматов файлов фотографий.
8. Изменение должно сразу вступить в силу; в противном случае, чтобы увидеть новые значки, перезапустите Windows.
Наиболее вероятно, что IconHandlers6buin повреждены неправильно себя ведущими программами установки для графических приложений, поэтому если вы не хотите повторять эти шаги позже, используйте решение из раздела «Заблокируйте свои типы файла».
Контекстное меню (иногда его называют меню правого юшка или меню объекта) — это небольшое меню, которое появляется, когда вы используете правую кнопку мыши, чтобы щелкнуть на файле, папке, панели заголовка приложения или почти любом другом объекте на экране. В большинстве случаев это меню содержит список действий, присущих объекту, на котором вы щелкнули. Другими словами, доступные опции зависят от контекста.
Контекстное меню для файлов, показанных на рис. 3.16, является набором стандартных действии, применимых ко всем файлам (например, Копировать (Сору), Вставить (Paste), Удалить (Delete), Переименовать (Rename) и Свойства (Properities), плюс одно или несколько специальных действий, зависящих от типа файла. Каждое из этих действий связано с приложением: если вы щелкаете правой кнопкой на .txt-файле и выбираете Открыть (Open), Windows запускает Блокнот (по умолчанию) и дает Блокноту команду открывать выбранный файл. Действие по умолчанию — это действие, которое выполняется при двойном щелчке на файле, — выделено в контекстном меню полужирным шрифтом, а остальные действия перечислены ниже. Между прочим, это означает, что у вас может быть более чем одна программа, связанная с данным типом файла.
Например, для .html-файлов вы можете добавить действие Редактировать, чтобы открывать ваш любимый редактор веб-страниц, действие Просмотр с помощью Firefox, и действие Просмотр с помощью Internet Explorer — все это в дополнение к действию Открыть (Open) по умолчанию. Чтобы увидеть, как это работает, см. следующую врезку «Копирование содержимого файла в буфер обмена».
Рис 3.16. Щелкните правой кнопкой на файле, чтобы увидеть его контекстное меню; в Windows 7 не очень легко настраивать элементы, которые здесь отображены
КОПИРОВАНИЕ СОДЕРЖИМОГО ФАЙЛА В БУФЕР ОБМЕНА
Вот пример, покалывающий, как добавить пользовательское контекстное меню к типу файла с использованием малоизвестной новой игрушки в Windows 7 под названием clip.exe. Это программа командной строки, которая копирует текст в буфер обмена и, по стечению обстоятельств, хорошо работает с текстовыми файлами.
Откройте редактор реестра и перейдите к HKEY_CLASSES_ROOT\.txt. Посмотрите на значение (По умолчанию) в правой области, чтобы узнать имя раздела типа файла (обычно это txtfile).
Перейдите к разделу типа файла (например, HKEY_CLASSES_ROOT\txtfile) и откройте подраздел shell (HKEY_CLASSES_ROOT\txtfile\shell). Создайте внутри shell новый раздел, названный copycontents. Откройте новый раздел, щелкните на значении (По умолчанию), введите Копировать содержание в буфер обмена (Сору Contents to Clipboard) в качестве данных значения и нажмите ОК.
Затем создайте раздел, названный command, внутри раздела copycontents. Откройте новый раздел command и установите его значение По умолчанию (Default) cmd. exe / с clip < "%1". Затем нажмите ОК и закройте редактор реестра.
Чтобы проверить, как это работает, щелкните правой кнопкой на любом .txt-файле в Проводнике и выберите Копировать содержимое в буфер обмена. (Если новой записи там нет, возможно, вы поместили новые разделы в реестре в неправильном месте.) Можно проверить, что содержимое файла было скопировано в буфер обмена, вставив его в пустое окно Блокнота.
Можно использовать утилиту Clip, чтобы копировать в буфер обмена практически что угодно. Например, чтобы скопировать имя выбранного файла, введите данные значения (По умолчанию) в разделе command: cmd.exe /с echo%l | clip
Или, например, если вы добавили элемент контекстного меню в тип файла Папка (Folder), можно скопировать содержание любой папки с помощью такой команды: cmd.exe /с dir и%1" /Ь /о:п | clip
Откройте окно командной строки и введите clip /?, чтобы узнать команды этого инструмента.
Великолепно звучит, не правда ли? К сожалению, в Windows 7 совершенно отсутствует окно Типов файла (File Types) — инструмент из более ранних версий Windows, который позволяет редактировать контекстные меню Проводника. Вместо него предлагается чрезвычайно упрощенное окно Задать сопоставления (Set Associations), показанное на рис. 3.17. Здесь вы можете только выбрать приложения по умолчанию для различных типов файла и при этом стереть значения по умолчанию ваших приложений или любые пользовательские контекстные меню, которые вы создали (подробнее об этом позже).
Итак, если вы хотите настроить свои контекстные меню, остается две возможности: или взломать реестр, или использовать стороннюю программу. Учитывая, что эта глава — про реестр, немного развлечемся, копаясь в разделах и значениях.
В реестре есть раздел под названием Shell, друтри которого все и происходит. Каждый подраздел Shell соответствует одному действию в контекстном меню файла.
Текст, который появляется в контекстном меню, определяется в значении раздела действия (Поумолчанию); если значение пусто, Проводник использует имя раздела (например, Открыть (Open)). К сожалению, в Windows 7 есть две соревнующиеся системы, которые определяют действия по умолчанию для типов файлов; для получения подробной информации см. врезку «Зло переопределения UserChoice» на с." 169.
Рис 3.17. Окно Задать сопоставления (Set Associations window) доступное из Панели управления Программы по умолчанию ► Сопоставление типа файла или протокола с программой (Default Programs ► Associate a file type or protocol with a program) — не показывает ничего хорошего
Скажем, вы щелкаете правой кнопкой на документе Microsoft Excel (.xlsx-файл), и в верхней части меню, которое появляется, вы видите Открыть (Open), Новый (New), и Печать (Print). Если вы откроете реестр, вы увидите, что HKEY_CLASSES_ROOT\. xlsx указывает на HKEY_CLASSES_ROOT\Excel. Sheet. 12. Перейдите к HKEY_CLASSES_ROOT \ Excel.Sheet. 12\Shell. Внутри раздела Shell вы увидите три подраздела — вы так и думали — New. Open, и Print Добавьте новый подраздел в Shell, сопровождаемый коротко описанными подразделами, и вы получите новую запись в контекстном меню для всех файлов выбранного типа.
ЗЛО ПЕРЕОПРЕДЕЛЕНИЯ USERCHOICE
Если вы щелкаете правой кнопкой на файле, выбираете Открыть с помощью (Орел With) и затем выбираете приложение по умолчанию ~ или если вы используете окно Задать сопоставления (Set Associations), показанное на рис. 3.17, - Windows фактически не изменяет тип файла. Вместо этого Windows добавляет новый раздел для расширения файла в HKEY_CURRENT_USER\Software\Microsoft \Windows\CurrentVersion\ Explorer\FileExts и затем в этом новом разделе добавляет раздел UserChoice с полным путем программы, которую вы выбрали:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ FileExts\. wav\UserChoice
Раздел UserChoice должен препятствовать тому, чтобы приложения изменили значения по умолчанию без вашего разрешения; пока раздел UserChoice существует, Windows игнорирует все действия, определенные в обычном разделе типа файла. Любые обычные действия контекстного меню исчезают, и даже значок заменяется значком вновь выбранного приложения.
Как и многие другие заплаточные функции в Windows, система UserChoice работает не совсем хорошо. Во-первых, у типов файлов, к которым применена UserChoice, не может быть обычных контекстных меню или значков. И старый прием переустановки приложения, чтобы восстановить его типы файлов, не будет работать, пока присутствует раздел UserChoice (если, установщик недостаточно умен, что маловероятно). Но хуже всего то, что систему невозможно победить, не углубляясь в реестр.
Решение состоит в том, чтобы открыть редактор реестра, перейти к HKEY__CURRENT_ USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts и стереть расширение, которое вы хотите восстановить (или стереть весь раздел FileExts, чтобы восстановить все расширения файлов). После этого воздержитесь от использования меню Открыть с помощью (Open With) или Панели управления, чтобы модифицировать ваши типы файла, и ваши сопоставления файлов будут продолжать действовать на полную мощность.
XoTirre воспрепятствовать тому, чтобы Windows переопределил типы файла? См. инструкции в разделе 4Как запретить изменения в разделе реестра*.
Стоит отметить тот случай, когда система UserChoice может фактически иметь преимущество. Традиционно типы файлов сохранены в разделе HKEY_CLASSES_ROOT, который является подмножеством HKEY_LOCAL_MACHINE; это означает, что ваши типы файла — одни и те же для всех пользователей на вашем компьютере. Однако разделы UserChoice, скрытые в ветви HKEY_CURRENT_USER, разрешают каждому пользователю иметь собственную группу переопределений.
В каждом разделе действия имеется подраздел, названный command (и иногда еще один — названный ddeexec). Внутри раздела command находится значение (По умолчанию), которое указывает полный путь и имя файла запускаемой программы. Щелкните правой кнопкой на .xlsx-файле и выберите Открыть (Open), и Windows запустит программу, указанную в HKEY_CLASSES_R00T\Excel. Sheet. 12\shell\0pen\ command. Например:
"C:\Program Files\Microsoft 0ffice\0fficel2\EXCEL.EXE" /е
Кавычки вокруг полного пути и имени файла приложения дают возможность использовать пробелы и говорят Windows, где заканчивается имя файла и начинаются параметры командной строки (такие, как /е). Однако чаще всего командная строка содержит %1 — метку-заполнитель для выбранного имени файла, например:
"C:\Program Files\UltraEdit\UEDIT32.EXE" "XI"
Когда Windows открывает эту программу, она передает ей полный путь и имя выбранного файла, помещая его вместо XI, например, гак:
"С:\Program Files\UltraEdit\UEDIT32.EXE”
"С:\Users\Asher\Desktop\readme.txt"
Эта небольшая опция, XI, является причиной большого количества проблем в системе типов файла Windows, таких как О Приложение выводит на экран ошибку «не найдено»
Кавычки вокруг "XI" пропущены, а документ, который вы пытаетесь открыть, содержит символ -«пробел» в имени файла или в пути. Добавьте кавычки в значение (По умолчанию) и попробуйте еще раз.
О Более старое приложение выводит на экран ошибку «неверная командная строка» или что-то подобное
Не все программы хорошо реагируют на кавычки вокруг параметра "XIй. Попытайтесь удалить их.
О Приложение вообще не открывает файл
Параметр "XI" отсутствует, или приложение требует другого синтаксиса. Например, веб-браузер Mozilla SeaMonkey требует наличия перед %1 параметра url, таким образом:
C:\Program FilesXMozilla SeaMonkey\seamonkey.exe -url "XI"
Если вы не уверены, что знаете, в чем нуждается ваше приложение, проверьте документацию или введите в поиске Google название приложения и слова «командная строка».
В некоторых случаях можно получить справку с помощью параметров командной строки программы, запуская приложение с командами /? или -help.
I Приложение открывает документ, только если оно уже запущено
Эта (и следующая) проблема вызывается фоновой технологией под названием Dynamic Data Exchange, или DDE, которая позволяет программам Windows связываться друг с другом. Windows отправляет сигнал DDE приложению, которое уже запущено, чтобы дать ему команду открыть документ. (Если приложение не запущено, Windows запускает его точно так же, как любое другое.) Специфические команды DDE, которые требуются приложению, сохранены в разделе ddeexec реестра, рядом с вышеупомянутым разделом command (показан ранее на рис. 3.14). Если раздел ddeexec отсутствует, то Windows не отправит сигнал и программа не откроет ваш документ. Если имеется документация, можно попробовать заново создать раздел ddeexec, но обычно легче переустановить приложение, которому принадлежит этот раздел. (Не все программы используют DDE; не трудитесь над созданием раздела ddeexec, если у вас нет этой проблемы.)
Приложение открывает документ дважды
Только что описанный раздел ddeexec часто создает больше проблем, чем решает. Иногда Windows отправляет вышеупомянутое сообщение DDE и запускает копию программы, в результате вы получаете два окна документа. Если это происходит, переименуйте раздел ddeexec в ddeexec.backup.
Если приложение прекратило реагировать (другими словами, оно отказало), оно не будет отвечать на инструкции DDE Windows, чтобы открыть ваш документ, и Windows не откроет вторую копию программы. Чтобы узнать, происходит ' ли это, щелкните правой кнопкой на свободном месте Панели задач, выберите Запустить диспетчер задач (Start Task Manager) и щелкните на вкладке Процессы (Processes). Если программа, в которой вы ищете неисправности, там, выделите ее и щелкните на Завершить процесс (End Process) и затем попытайтесь открыть документ снова.
$4,
Сейчас вы, вероятно, думаете: «Значит, я должен вводить все эти разделы реестра вручную, если хочу хоть немного контроля над моими типами файлов?» Если так, я посмеюсь над вами.
Приложение File Type Doctor, являющееся частью Creative Element Power Tools (доступен по адресу http:// www.creativelement.com/powertools/) и показанное на рис. 3.18, позволяет вам настраивать контекстные меню, изменять значки типов файлов и выбирать значения по умолчанию.
В окне File Type Doctor типы файлов расположены по именам (показаны в правом столбце) и соответствующим расширениям файлов (показаны в левом столбце). Чтобы упорядочит^ список, щелкните на заголовке соответствующего столбца. Выберите тип файла, чтобы увидеть его подробные данные в правой части окна.
«Г*
^ После того как вы включили опцию Edit file type associations в Creative Element Power Tools Control Panel, можно щелкнуть правой кнопкой на любом файле в Проводнике ^ ft?* или на'вашем Рабочем столе и выбрать Edit File туре, чтобы на лету настроить ' контекстное меню файла в File туре Doctor.
Отредактируйте имя типа — это текст, который появляется в столбце Тип (Туре) Проводника и в окне свойств файла, — вводя его в текстовом поле Name в окне наверху справа. Нажмите Change, чтобы выбрать значок для всех файлов этот типа или открыть любое действие из списка внизу.
~*v Произведенные изменения File Type Doctor сохраняет автоматически. Это облег-
#%, чает проверку контекстных меню при работе над ними, но это также означает,
* ** что большое количество изменений будет непросто отменить.
Справа в списке Actions in right-click menu показаны все элементы контекстного меню, зарегистрированные для выбранного типа файлов. Щелкните на Add, чтобы создать новый элемент, или на Edit (либо дважды щелкните на элементе в списке), чтобы изменить сопоставленное приложение и его параметры.
Можно также удалить нежелательные элементы контекстного меню, выделяя их здесь и щелкая на Remove. Список показывает все, что было зарегистрированно для выбранного типа файла, так же как воспринятый тип, который описан в разделе «Расширение‘возможностей ваших типов файлов». Расширения Shell (врезка «Исправление ненадежных расширений оболочки») показаны курсивным шрифтом; они могут быть удалены, но не изменены в традиционном смысле.
ИСПРАВЛЕНИЕ НЕНАДЕЖНЫХ РАСШИРЕНИЙ ОБОЛОЧКИ
Расширения оболочки — это программы, обычно dll-файлы, которые добавляют функции к Проводнику. Когда они работают, все прекрасно, но когда они дают сбой, могут привести к уменьшению производительности, катастрофическим отказам и другим проблемам. Можно отключить расширения оболочки, удалив их разделы в реестре или просто разъединив их с сопоставленными типами файла, как это описано далее.
Раздел реестра shell, рассмотренный в разделе «Настройка контекстных меню для файлов», содержит разделы, ответственные за статические элементы в кон-текстном меню файла. Контекстное меню расширений оболочки, которые могут генерировать элементы контекстного меню, динамически располагаются в разделе shellex\ContextMenuHandlers. Каждый подраздел ContextMenuHandlers обычно содержит не что иное, как загадочный 38-снмвольный код, который выглядит следующим образом:
{E88DCCE0-B7B3-lldl-A9F0-00AA0060FA31}
Это 32-значный шестнадцатеричный код (также известный как 16-битные числа), является ID-классом (или для краткости CLSID), указывающим на подраздел с тем же самым именем в HKEY_CLASSES_ROOT\CLSID\{class_id}. Классы ID - это средства, с помощью которых расширения оболочки - не считая компонентов, используемых в любом типе программного обеспечения, - регистрируются в Windows и соединяются с программами, которые их используют.
В дополнение к ContextMenuHandlers вы обнаружите в разделе shellex следующие:
DropHandler
Расширения в этой ветви активируются, когда вы перетаскиваете файлы этого типа или другие файлы на файлы этого типа.
IconHandler
Этот раздел указывает на программу, которая динамически генерирует значок, обычно предварительный просмотр содержимого файла, чтобы использовать его вместо статического значка. Для получения подробной информации см. «Изменение значка для всех файлов одного типа».
PropertySheetHandlers
Эти расширения добавляют дополнительные страницы (вкладки) к окну, которое появляется, когда вы щелкаете на файле данного типа правой кнопкой и выбираете Свойства (Properties).
Конечно, разделы в ветви shellex не всегда гак аккуратно организованы; иногда вы обнаружите разделы, названные по имени ID-класса, с другим ID-классом в значении (Поумолчанию). В разделе «Поиск в реестре» представлены некоторые инструменты, которые можно использовать, чтобы найти ID-классы.
File Туре Doctor показывает расширения оболочки контекстного меню, связанные с выбранным типом файла курсивным шрифтом. Хотя их невозможно отредактировать (для этого вам понадобился бы их исходный код и программные средства разработки, такие как Visual Studio), можно удалить их контекстные меню, выбирая их и щелкая на Remove. Это не удалит регистрацию расширения, а только разорвет связь с выбранным типом файлов и, вероятно, решит проблему, которая у вас есть (или сделайте это, чтобы удалить беспорядок). Можно также щелкнуть правой кнопкой иа расширении оболочки в File Type Doctor (для поиска в реестре или в Интернете ее ID-класса или другой информации), чтобы узнать
о ней больше.
Чтобы увидеть все расширения оболочки, установленные на вашем компьютере, используйте ShgHExView, доступный бесплатно по адресу http://www.nirsoftnet/utils/ shexview.html.
*2*
В списке контекстного меню Действия (Actions) не отображаются только те дей-0* етвия, которые зарегистрированы для типа файлов * (рассмотрены выше во 'V J ^ врезке «Специальные разделы типов файлов» на с. 161). Если вы пытаетесь удалить лишний элемент из своих контекстных меню и не видите его, попробуйте выбрать запись * (все файлы) в самом верху списка типов файлов.
Одна из самых полезных функций File Type Doctor — функция Блокировка (Lock), описанная далее.
Технические компании тратили миллионы на то, чтобы убедить вас купить их продукты (они и сейчас так поступают), но теперь борьба идет за то, чтобы быть «значением по умолчанию». К большому огорчению таких участников соревнования, как Google4, в качестве средства поиска по умолчанию в Internet Explorer 8 корпорация Microsoft расположила свой собственный веб-поиск Bing (ранее Live Search, ранее MSN Search, ранее мешок гуано летучей мыши). Компании платят производителям компьютеров за то, чтобы пробные версии их программного обеспечения были предустановлены на всех выпускаемых машинах, и их продукты оказались первыми, когда пользователи случайно щелкают на своих собственных файлах. И когда вы устанавливаете приложение на своем компьютере, программа установки неизменно делает его приложением по умолчанию для всех типов файлов, которые оно поддерживает.
Почему значения по умолчанию столь важны? Потому что люди не изменяют их. В результате компании-разработчики программного обеспечения, в том числе и Microsoft, привыкли игнорировать ваши предпочтения, чтобы продвигать свои продукты. К счастью, у вас есть защита, и она находится в реестре.
Есть два основных подхода к защите ваших типов файлов — это копировать их так, чтобы они могли быть восстановлены в случае, если будут перезаписаны, и «заблокировать» их, предотвращая такие изменения.
*$' Есть фактически третий способ защитить ваши типы файлов посредством функ-
ции UserChoice, описанной во врезке «Зло переопределения UserChoice» на ^ с. 169. Он не без недостатков, но его применение легко и удобно, если вы не *' используете контекстные меню.
Самый простой способ сделать резервные копии ваших типов файлов состоит в том, чтобы создать файлы реестра, как описано в разделе «Экспорт и импорт файлов реестра». Чтобы сделать копирование эффективным, необходимо включить все
разделы, описанные в разделе «Анализ типа файла». Например, если вы создаете резервную копию текстового файла (,txt), ваш файл реестра должен содержать разделы:
HKEY_CLASSES_ROOT\. txt HKEY_CLASSES_ROOT\txtfile ,
HKEY_CLASSES_ROOT\SystemFileAssociations\text
Последняя из перечисленных ветвей — SystemFileAssociations - описана в разделе «Расширение возможностей ваших типов файлов». Если вы хотите включить другие связанные расширения файлов, такие как .log, .ini и .csv, следует включить и их разделы.
Теперь если ваши сопоставления типов для текстовых файлов когда-нибудь будут уничтожены, дважды щелкните на файле резервного копирования реестра, чтобы восстановить их.
Но лучшее решение состоит в том, чтобы заблокировать ваши типы файлов, установив ограничение полномочий в вышеупомянутых разделах, как описано в разделе «Как запретить изменения в разделе реестра». В этом случае ни одно приложение, ни одна программа установки и даже сама Windows не смогут изменить разделы реестра, пока вы их не разблокируете.
Если вы предпочитаете более короткий путь, можно использовать File Type Doctor, описанный выше. Выделите тип файлов, который вы хотите заблокировать, и нажмите Lock, File Type Doctor одним щелчком защитит не только выбранное расширение файла и сопоставленные типы файлов, но и все связанные расширения.
У большинства приложений и программ установки не возникнет проблем с заблокированными типами файлов; они, скорее всего, проигнорируют ошибку Но не исключена и возможность сбоя или отказа приложения, если оно не имеет всего необходимого доступа к реестру. (Например, программа установки Adobe CS4 не завершится, если какие-либо типы файлов, используемые ее приложениями, будут заблокированы.) В этом случае вам, возможно, необходимо разблокировать соответствующие типы файлов и выполнить для них резервное копирование, как описано выше.
Чтобы удалить блокировку, выберите заблокированный тип файла (можно щелкнуть на заголовке крайнего левого столбца, чтобы сгруппировать все заблокированные типы файлов) и нажмите кнопку Unlock (Разблокировать).
Из каждого правила есть исключения, для Windows 7 это вдвойне справедливо. В разделе «Анализ типа файла» показана основная система типов файлов с набором разделов, названных по имени расширений файла (например, HKEY_CLASSES_ROOT \. jpg), и соответствующих разделов типа файлов (таких, как HKEY_CLASSES_ROOT\ jpeg file). Оказывается, в реестре есть и еще одна связь, влияющая на ваши типы файлов.
Многие разделы (например, HKEY_CLASSES_ROOT\. jpg) содержат значения под названием PerceivedType, которые указывают на подразделы в HKEY_LOCAL_MACHINE\ SOFTWARE\Classes\SystemFileAssociations. Там разделы работают так же, как и обыкновенные разделы типа файлов, но у них гораздо больше возможностей. Вместо того чтобы быть соединенным с одним или двумя расширениями файлов, раздел воспринятого типа может быть соединен с десятками.
Скажем, вы только установили новую утилиту для изменения размеров изображений, которую требуется использовать с множеством форматов фотографий. Вместо того чтобы установить ее значением по умолчанию для этих типов файлов, вы решаете добавить элемент контекстного меню для каждого поддерживаемого формата (например, .jpg, .bmp, .png и т. д.). Конечно, можно сделать это для каждого из приблизительно графических форматов, которые поддерживает утилита, но оказывается, все, что вам нужно сделать, чтобы повлиять на все ваши файлы изображений сразу, — это добавить в раздел
HKEY__LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\image\shell\
my_new_program
По умолчанию раздел image, указанный здесь, соединен со всеми расширениями файлов, для которых PerceivedType установлен как image, а именно: .bmp, .dib, ,emf, .gif, .ico, .jfif, .jpe, .jpeg, .jpg, .png, .rle, .tif, .tiff, .wdp и .wmf.
В Windows 7 установлены только пять разделов воспринятого типа (audio, image, system, text и video), но можно в любой момент добавить свои разделы в ветвь SystemFileAssociations, что позволит вам затем соединить по крайней мере одно расширение файлов, добавив значение PerceivedType, указывающее на ваш новый раздел. Преимущество в том, что можно использовать этот раздел, чтобы добавить пользовательский элемент контекстного меню, который влияет на большое количество различных типов файлов сразу. Недостаток — это еще одно место, куда придется заглядывать, разыскивая нежелательный элемент контекстного меню или источник ошибки.
Для того чтобы разорвать соединение между расширением типа файла и воспринятым типом, сотрите значение PerceivedType из раздела расширения. Чтобы соединить тип файла с существующим PerceivedType, создайте новое строковое значение под названием PerceivedType в разделе расширения (например, HKEY_ CLASSES_ROOT\. jpg) и установите его содержание — имя воспринятого типа в ветви SystemFileAssociations.
Если вы пытаетесь стереть действие из контекстного меню, которое соединяется через воспринятый тип, File Type Doctor выводит на экран поле для подтверждения, которое перечисляет другие расширения файлов, на которые повлияет изменение. Аналогично, создавая новое действие, можно выбрать контекст; щелкните на кнопке Properties рядом со списком Scope, чтобы вывести на экран все расширений связанные с текущим выбором.
Изучая в реестре ветвь HKEY_CLASSES_ROOT\SystemFileAssociations, вы можете обнаружить разделы расширения файла, такие как HKEY_CLASSES_ROOT\ SystemFileAssociations\. png. Они выглядят и работают точно так же, как разделы расширения и разделы типа файлов в HKEY_CLASSES_ROOT, но используются прежде всего для того, чтобы сослаться на расширения Проводника, которые были предустановлены вместе с Windows. Вопрос, почему они находятся здесь, а не в HKEY_ CLASSES_ROOT с остальными расширениями, не до конца ясен, но SystemFileAssociations несомненно является еще одной ветвью, где можно искать разделы, влияющие на типы файлов.
Если вы щелкнете правой кнопкой на пустой области Рабочего стола или какой-нибудь открытой папке и выберете Создать (New), то увидите специальный список зарегистрированных типов файлов, которые могут быть немедленно созданы. Выберите один из них, и Проводник тут же создаст новый (обычно пустой) файл с соответствующим расширением. Неудивительно, что можно отредактировать этот список и даже сделать так, чтобы он мог не только создавать пустые файлы.
Вот самый легкий способ удалить нежелательные элементы из меню Создать (New) Проводника:
1. Установите Creative Element Power Tools (представленный ранее в разделе «Настройка контекстных меню для файлов»), Включите на Панели управления параметр Edit file type associations (редактировать сопоставления типов файлов) и щелкните на Accept
2. Щелкните правой кнопкой на пустой области Рабочего стола, выберите Создать (New), затем выберите одну из записей, которые требуется удалить.
3. Щелкните правой кнопкой на новом файле и выберите Edit File Туре (редактировать тип файла).
4. Удалите флажок рядом с параметром Show in Explorer's New menu.
5. Изменение сразу вступит в силу; чтобы убедиться в этом, снова щелкните правой кнопкой на Рабочем столе и выберите Создать (New).
Если вы хотите сделать это вручную, вам потребуется заглянуть в несколько различных мест в реестре:
1. Откройте редактор реестра.
2. Перейдите к разделу, названному по имени расширения файла, которое требуется удалить из меню Создать (New). Для .txt-расширения надо переместиться В HKEY_CLASSES_ROOT\.txt.
3. Если вы видите здесь подраздел под названием ShellNew, переименуйте его в Shellnew- (добавьте после ShellNew дефис). Можно удалить подраздел ShellNew, но этот метод позволяет легче восстанавливать и распознается несколькими сторонними инструментами.
4. Затем посмотрите на значение (По умолчанию) раздела расширения и найдите там подраздел, который соответствует содержанию значения (По умолчанию). Для .txt-расширения вам надо было бы пройти до раздела НКЕY_CLASSЕS_ROOT\. txt\txtfile.
5. Как на шаге 3, если вы видите здесь подраздел под названием ShellNew, переименуйте в Shellnew- (добавьте после ShellNew дефис).
6. Изменение сразу вступит в силу; чтобы убедиться в этом, снова щелкните правой кнопкой на Рабочем столе и выберите Создать (New).
Как видите, только наличие раздела ShellNew определяет, показывается ли тип файлов в меню Создать (New) в Проводнике. (На самом деле все немного сложнее, но подробнее об этом позже.)
Чтобы получить список всех потенциальных записей, которые могут появиться в меню Создать (New), запустите Агент реестра (registry Agent) (см. «Поиск и замена данных реестра») и задайте поиск ShellNew по всему реестру. (Если вы хотите избежать ошибок, включите только параметр Разделы (Keys), отключите Значения (Values) и Данные (Data) и отметьте Совпадение целых aioe(Match whole word).)
Теперь о некоторых изящных трюках, которые можно использовать в разделах ShellNew, если вы хотите оставить их нетронутыми. У типичного раздела ShellNew есть только одно значение — NullFile, описанное далее, но вы можете изменить поведение Проводника при выборе соответствующего элемента из меню Создать (New), если добавите к разделу ShellNew какое-нибудь другое из следующих значений. Все значения — строковые, если не оговорено иное:
О Command
Если включить полный путь и имя файла исполняемой программы (.ехе-файл), то Проводник запустит эту программу, вместо того чтобы создать новый файл. Проверьте, что вы добавили параметр п%1" (см. «Настройка контекстных меню для файлов»), — таким образом целевая программа будет знать, где создать новый файл:
С:\windows\system32\notepad.ехе "%1"
Консультируйтесь с документацией своего приложения, чтобы узнать, необходимы ли какие-то еще параметры командной строки, чтобы создать новый документ, иначе программа может только жаловаться, что не может обнаружить (пока еще несуществующий) файл.
О Data
Любой текст, сохраненный в этом двоичном значении, будет помещен в новый файл. Например, значение Data для .rtf-файлов (в HKEY_CLASSES_ROOT\.rtf\ ShellNew) содержит текст {\rtfl}, который заставляет убедиться любую программу, что новый .rtf-файл читаем. Проводник игнорирует значение Data, если присутствуют или FileName, или NullFile. (Подсказка: следующее значение FileName является лучшим способом создавать непустые файлы.)
О FileName
Это полный путь и имя файла шаблона, который будет копироваться и использоваться для каждого нового создаваемого документа вместо пустого (нуль-байтного) файла. Если не указать путь, то Windows будет искать файл шаблона в C:\Users\{MMfl пользователя}\Арр0а1а\Воат^\Мз,сго5О^\Тетр]^е5/ а также в С:\Windows\ShellNew.
О Handler
ID-класс (например, {CEEFEA1B-3E29-4EF1-B34C-FEC79C4F70AF}) расширения оболочки используется для создания нового файла. Например, ярлыки Windows (.Ink-файлы) используют Handler. (Информацию о расширениях Проводника см. во врезке «Исправление ненадежных расширений оболочки» на с. 172.)
О IconPath
Полный путь и имя файла (плюс индекс) значка, который появляется рядом с элементом в меню Создать (New) в Проводнике. Если параметр не указан, то Проводник использует значок типа файлов по умолчанию. (Синтаксис см. в разделе «Изменение значка для всех файлов одного типа».)
О ItemName
По умолчанию имя нового файла, который вы создаете, состоит из имени типа файлов, которому предшествует слово «Новый», и соответствующего расширения файла, например Новый текстовый документ^ Это значение определяет имя нового файла, но, как и для следующего значения MenuText, оно не может быть текстовым, а должно указывать на текстовый ресурс в .dll-файле.
О MenuText
К сожалению, это не то, иа что похоже. Да, это значение определяет текст, который появляется в меню Создать (New) Проводника, но здесь невозможно просто ввести текст. Вместо текста должна быть ссылка на текстовый ресурс в .dll-файле, например @%systemroot%\system32\mspaintexe,-59414.
О NullFile
Дает Проводнику команду создать пустой (иуль-байтный) файл. Если ни одно из других значений не присутствует, вы должны указать значение NullFile, иначе тип файла не будет показываться в меню Создать (New) Проводника.
Как же вы можете препятствовать приложениям воссоздавать разделы ShellNew и непрерывно загромождать меню Создать (New) Проводника? Программа Adobe Photoshop поступает так каждый раз, когда запускается, но это можно предотвратить несколькими изменениями в реестре:
1. Откройте редактор реестра.
2. Перейдите к разделу расширения, который вы хотите постоянно исключать из меню Создать (New). Для документов Photoshop вы перешли бы в HKEY__CLASSES_ ROOTX.psd.
3. Удалите все разделы ShellNew, которые вы обнаруживаете здесь.
4. Щелкните правой кнопкой на разделе расширения (например, .psd) и выберите Разрешения (Permissions).
5. В окне Разрешения (Permissions) нажмите кнопку Дополнительно (Advanced), аза* тем в окне Дополнительные параметры безопасности (Advanced Security Settings) щелкните на Добавить (Add).
6. Затем в окне Выбор: пользователь или группа (Select User or Group) введите все в поле Введите имена выбираемых объектов (Enter the object name to select) и затем щелкните на ОК.
7. Наконец, в окне Элементы разрешения (Permission Entry) поместите флажок в столбец Запретить (Deny) для Создание подраздела (Create Subkey) и, когда вы это сделаете, щелкните на ОК.
8. Щелкните на ОК, затем щелкните на Да в ответ на вопрос, уверены ли вы, что хотите отказать в выдаче разрешения (deny permissions entry), и затем щелкните на ОК, чтобы закрыть последнее окно.
9. Изменение сразу вступит в силу. Проверьте это, запустив приложение; можно нажать F5 в редакторе реестра, чтобы обновить вид и убедиться, что никакой новый подраздел ShellNew не был добавлен.
Можно выполнить в значительной степени то же самое с помощью функции Locke File Type Doctor (см. «Заблокируйте свои типы файла»), но это может быть излишним, если все, что вы хотите сделать, — это не допускать нежелательные элементы в меню Проводника Создать (New). О других вещах, которые можно сделать с полномочиями реестра, см. «Как запретить изменения в разделе реестра».
Настройка — это развлечение, но иногда вы вынуждены исправлять поврежденные типы файлов. Чаще всего можно просто переустановить приложение, которое создало их — если только не задействован раздел UserChoice, как описано во врезке «Зло переопределения UserChoice» на с. 169, — но это не всегда работает.
Один из типов файлов, который часто портится, это .url (интернет-ярлык). Его восстановление может оказаться достаточно сложным. Во-первых, .url-файлы не запускают веб-браузер; вместо этого они активируют Windows.dll, которая делает это. Обычно процесс состоит из двух шагов и использует два типа файлов.
Все разделы, обсуждаемые ниже, должны быть заблокированы после уста* новки Windows 7, — это должно препятствовать их повреждениям. (Увы, это все-таки случается.) Если Windows не будет позволять производить изменения в каком-то из этих разделов, вам следует сначала взять его в «собственность», как описано в разделе «Как запретить изменения в разделе реестра» и в главе 8.
1. Перейдите в HKEY_CLASSES_ROOT\. url и убедитесь, что в значении (По умолчанию) установлено InternetShortcut.
2. Затем удостоверьтесь, что в HKEY_CLASSES_ROOT\InternetShortcut\Shell\Open\ Command установлено значение (По умолчанию)
rundll32.exe shdocvw.dll, 0penURL5Q
"Ы? Таким образом Windows получает команду открыть выбранный файл интернст-4%t ярлыка, прочитать содержащийся там URL (вы тоже можете прочитать его с Ф ^ помощью Блокнота) и затем запустить программу, соответствующую разновид---•’ мости URL.
3. Интернет-ярлыки также используют по умолчанию «обработчик значка» (о котором рассказано в разделе «Изменение значка для всех файлов одного типа»), который выбирает значок для каждого файла в зависимости от типа URL Раздел
HKEY_CLASSES_ROOT\InternetShortcut\ShellEx\IconHandler
должен быть установлен в {FBF23B40-E3F0-101B-8488-00AA003E56F8}. Если вы хотите отключить обработчик значка и выбрать вместо этого ваш собственный статический значок, переименуйте раздел IconHandler в IconHandler.backup и затем укажите свой файл значка в разделе Defaultlcon, как описано ранее в этой главе.
4. Как только Windows определила, с каким URL имеет дело, она выполняет команду Открыть (Open) в разделе, названном но имени используемого протокола. Например, URL http://www.annoyances.org/ использует протокол http://, его приложение по умолчанию сохранено в разделе реестра
HKEY_CLASSES_ROOT\http\shell\open\command
— Аналогичные разделы есть и для других протоколов: https://, file://, ftp://, news://, 0% nntp://, snews://, telnet:// и maifto:. (В File Type Doctor типы файлов протокола находятся ^5* Л •, внизу списка.) Эти разделы используются не только для интернет-ярлыков; они
-управляют поведением Windows всякий раз, когда вы пытаетесь открыть веб-адрес,
щелкая на гиперссылке в электронном письме, открывая ссылку на сайт установленного приложения или вводя URL в поле Найти (Search) меню Пуск.
5. Значение (По умолчанию) раздела command протокола должно быть установлено как полный путь и имя файла вашего веб-браузера. Установка по умолчанию — это, конечно, Internet Explorer:
"C:\Program FilesUnternet Explorer\iexplore.exe" -nohome
Если вы используете Mozilla Firefox:
"C:\Program Files\Mozilla Firefox\firefox.exe%lM
Или, если ваш браузер по умолчанию Mozilla SeaMonkey, вы задаете
"C:\Program Files\Mozilla SeaMonkey\seamonkey.exe - URL "%Г,М
Подробнее о разделе command, параметрах командной строки и иногда необходимом разделе ddeexec см. «Настройка контекстных меню для файлов».
6. Изменение сразу вступает в силу. Щелкните дважды на любом интернет-ярлыке, чтобы испытать новые настройки.
Как вы видите, довольно много разделов реестра отвечают за что-то столь простое на вид, как открытие веб-адреса. Причем достаточно всего лишь одного отсутствующего раздела, одной неверно расположенной кавычки или одного искаженного ID-класса, чтобы повредить целую систему. Так обстоят дела с реестром Windows 7.