Рис. 4.1. Сообщение об ошибке при записи нового значения в реестре
Вы увидели в действии защиту от несанкционированного вмешательства в реестр. Чтобы получить возможность поменять значение для параметра, нужно вначале получить соответствующие права на запись. Возвращаемся снова к разделу ShellFolder . Сначала убедитесь, что раздел выбран, затем в меню редактора реестра выберите команды Правка ► Разрешения... . На экране появится диалоговое окно Разрешения для группы ShellFolder (рис. 4.2), в котором можно задавать новые разрешения в пределах ваших прав, предоставляемых системой.
Рис. 4.2. Диалоговое окно для установки разрешений
В области Группы и пользователи нужно выделить строчку Administrators и в области Разрешения для группы Administrators поставить флажок напротив пункта Полный доступ (рис. 4.3). После подтверждения своих действий кнопкой OK вы сможете поменять значение у параметра Attributes . Настоятельно рекомендую после каждого изменения параметра в реестре восстановить прежние права на раздел. Тем самым вы обезопасите свою систему от разрушительных действий вирусов, которые могут повредить компьютер, имея ваши расширенные права. Не забывайте об этом, пожалуйста.
Рис. 4.3. Установка полного доступа к разделу реестра
Программа IconViewer
В этой главе нам часто придется иметь дело с параметрами, которые оперируют со значками. Нужно отметить, что в реестре существует два способа доступа к значкам.
Первый способ – традиционный. Всем вам знакомы значки, которые хранятся в файле с расширением ICO . Их можно найти на компьютере, а также скачать из Интернета.
Но существует и другой способ хранения значков – в ресурсах определенных файлов. Исполняемые файлы ( EXE ), компоненты панели управления ( CPL ) и динамические библиотеки ( DLL ) могут содержать в себе десятки, а то и сотни значков.
В дальнейшем мы увидим, что многие параметры в реестре обращаются именно к таким значкам. У каждого значка, заключенного в файл, имеется свой номер-идентификатор. Обычными средствами системы невозможно посмотреть на содержимое файла и увидеть спрятанные в нем значки.
Поэтому я рекомендую вам скачать бесплатную программу IconViewer , которая доступна по адресу http://www.botproductions.com/iconview/iconview.html .
После несложного процесса установки программы на диск, у вас в руках появится очень удобный инструмент для работы с встроенными значками. Теперь у всех файлов, которые могут содержать значки, в свойствах файла появится новая вкладка Icons .
Давайте рассмотрим это на конкретном примере. Найдите на вашем компьютере файл imageres.dll, который находится в папке C:\Windows\System32 . Щелкните на файле правой кнопкой мыши для вызова контекстного меню и выберите пункт Свойства . В диалоговом окне перейдите на вкладку Icons (рис. 4.4).
Перед вами предстанет весь список имеющихся значков, которые хранятся в файле. Обратите внимание, что каждый значок имеет свой номер, который начинается с символа решетки ( # ). Этот символ не является частью номера значка и его не нужно использовать в параметрах реестра.
При выделении значка из представленного списка в нижней части вкладки его можно просмотреть в разных размерах, которые доступны в системе. Также имеется окно предварительного просмотра значка ( Preview ).
Рис. 4.4. Вкладка Icons в свойствах файлов
Изучаем раздел HKEY_CLASSES_ROOT
Для того чтобы стать настоящим специалистом по работе с реестром, необходимо свободно разбираться в структуре раздела HKEY_CLASSES_ROOT . Почему это так важно? А потому, что именно здесь сосредоточена основная информация, которую система использует при работе с файлами. Вы щелкаете в Проводнике на каком-нибудь документе, и Windows запускает программу, которая связана с этим документом. Расширения файлов, их связи с программами, вывод на печать, значки для зарегистрированных типов документов и многое другое – все это хранится в разделе HKEY_CLASSES_ROOT . Не случайно данный раздел по умолчанию закрыт для редактирования, чтобы не повредить систему непродуманными дейст виями.
Структура раздела HKEY_CLASSES_ROOT
Типы файлов и их связи с программами определяются системой, которая считывает информацию с раздела HKEY_CLASSES_ROOT . Множество типов файлов уже зарегистрировано в системе во время установки операционной системы, такие, как BMP, TXT, HTM. Некоторые типы файлов появляются в реестре во время установки новых приложений от сторонних производителей. Например, при установке архиватора WinRAR в системе появляются ассоциации с файлами RAR, а после установки PhotoShop – с файлами PSD. После установки Visual Studio операционная система начинает распознавать множество самых разных файлов – CPP, CS, VB, SLN и т. д. Вы тоже можете придумать свое расширение для файла и зарегистрировать его в Windows. Причем сделать это довольно легко, и после прочтения этой главы вы без проблем сможете создавать свои типы файлов.
Каждому зарегистрированному типу файлов соответствуют два подраздела в разделе HKEY_CLASSES_ROOT . Имя первого подраздела соответствует расширению файла и содержит идентификатор ( name_ID ).
Рассмотрим сказанное на примере текстового файла TXT. Запустите редактор реестра и перейдите в раздел HKEY_CLASSES_ROOT . Теперь найдите в нем раздел .txt . (рис. 4.5).
Рис. 4.5. Раздел HKEY_CLASSES_ROOT\ txt
Обратите внимание, что параметр по умолчанию для данного раздела содержит значение txtfile , которое является идентификатором. Таким образом, нам теперь нужно найти раздел txtfile , чтобы найди дополнительную информацию о текстовых файлах. Поэтому переходим в раздел txtfile (рис. 4.6) для дальнейшего изучения.
Рис. 4.6. Раздел HKEY_CLASSES_ROOT\txtfile
Посмотрим на значение по умолчанию. Здесь дается текстовое описание для заданного типа файлов. В моем случае это значение равно Text Document . Если у вас стоит нелокализованная версия Windows, то этот текст и будет виден в описании файла, когда пользователь подводит указатель мыши. Также мы видим здесь параметр EditFlags , о котором поговорим чуть позже.
Раздел DefaultIcon
У всех зарегистрированных типов файлов имеется подраздел DefaultIcon . Как нетрудно догадаться из названия, здесь хранится информация о значке, который сопоставлен с текстовыми файлами. Для самопроверки можете с помощью программы IconViewer убедиться в этом. Например, для текстового файла параметр равен %SystemRoot%\system32\imageres.dll,-102 . Значит, значок для текстового файла содержится в файле imageres.dll под номером 102 (рис. 4.7).Рис. 4.7. Раздел HKEY_CLASSES_ROOT\txtfile\Defaulticon
Если вы хотите, чтобы выводился ваш собственный значок, то можете указать полный путь к вашему значку или файлу, содержащему значок.
Раздел shell
Следующий раздел, который нас интересует, – это раздел shell . Данный раздел очень важен для системы, так как Windows именно отсюда берет информацию о том, какие действия нужно предпринимать при двойном щелчке и других операциях. Раздел shell содержит для этой цели несколько подразделов, иногда называемых глаголами (verb). Существует несколько стандартных преопределенных глаголов: edit, open, print, printto . Если вызвать контекстное меню у файла, то в нем могут присутствовать команды Открыть, Печать, Изменить , которым соответствуют глаголы open, print и edit . Каждый подраздел-глагол в свою очередь содержит подраздел command , который содержит командную строку в параметре по умолчанию (рис. 4.8).Рис. 4.8. Раздел HKEY_CLASSES_ROOT\txtfile\Shell\open\command
Например, при двойном щелчке мыши на файле запускается программа, прописанная в разделе open . Здесь стоит обратить внимание на подстроку %1, входящую в командную строку:
%SystemRoot%\system32\NOTEPAD.EXE-%1
При запуске программы Блокнот параметр %1 заменяется именем выбранного файла. Таким образом, когда пользователь щелкает на файле sample .txt, который находится на диске D: , то система запускает программу C:\Windows\system32\notepad.exe с файлом D:\sample.txt .Раздел shellex
Некоторые типы файлов могут иметь еще один подраздел – shellex . Это необязательный подраздел, содержащий информацию о расширениях оболочки. Здесь может находиться информация о странице свойств (раздел PropertySheetHandlers ).
Вход в систему
Первое, что видит пользователь, когда включает компьютер, – это экран приветствия. Здесь нужно ввести свои логин и пароль, чтобы войти в Windows 7. Оказывается, это окно можно настроить с помощью редактирования некоторых значений параметров. Часть этих настроек мы сейчас и рассмотрим.
Сообщение при загрузке
Можно настроить систему таким образом, чтобы при загрузке системы на экране приветствия сначала выводилось ваше сообщение. Для этого откройте раздел HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System и найдите строковые параметры legalnoticecaption и legalnoticetext .
ВНИМАНИЕ
Не забудьте сделать архивную копию ветки реестра или точку восстановления системы, прежде чем удалять или модифицировать разделы реестра!
Первый параметр отвечает за заголовок сообщения, а второй – за сам текст. Предположим, вы введете в первый параметр текст Внимание! , а во второй параметр: На компьютере обнаружены вирусы! Форматировать диск? Теперь при каждом включении компьютера до появления стандартного экрана приветствия вы будете видеть заданное сообщение. Я не случайно привел пример с текстом о форматировании диска. В своей практике я несколько раз встречал на компьютерах пользователей такое сообщение. И надо признать, этот прием оказался достаточно эффективным против неопытных пользователей, которые решили попользоваться чужим компьютером, пока его владелец находился в отпуске. А пользователи, которые работали с реестром в более ранних версиях Windows, могут вспомнить, что раньше для этой цели использовались параметры