Как создать файл реестра для сохранения резервной копии системы или изменения её параметров

Типы данных

Каждый ключ может содержать данные следующих типов:

Ключ Тип данных
REG_NONE Нет типа
REG_SZ Текстовые данные (тип строки)
REG_EXPAND_SZ Одноразовое строковое значение; могут включать переменные
REG_BINARY Двоичные данные любого вида
REG_DWORD / REG_DWORD_LITTLE_ENDIAN 32-битное целочисленное значение без знака со значением от 0 до 4 294 967 295
REG_LINK Символическая ссылка на другой раздел реестра Windows
REG_MULTI_SZ Значение с несколькими наборами данных типа строки в списке
REG_RESOURCE_LIST Список ресурсов, используемых устройствами Plug-n-Play
REG_FULL_RESOURCE_DESCRIPTOR Описание ресурса (используется процессом Plug-n-Play)
REG_RESOURCE_REQUIREMENTS_LIST Список требований к ресурсам (используемых устройствами Plug-n-Play)
REG_QWORD / REG_QWORD_LITTLE_ENDIAN Значение QWORD, 64-битное целое число

Как сделать резервную копию реестра

Для создания копии реестра нужно войти в меню «Пуск», а в поле «Поиск» ввести выражение «regedit». После этого на клавиатуре следует нажать на кнопку «Enter» (Ввод).

Открыть Редактор реестра Windows можно будет и другим способом. Для этого потребуется одновременно нажать на клавиатуре на клавиши «Windows» + «R», затем в окне «Выполнить» ввести выражение «regedit». После этого следует нажать на кнопку «ОК», или нажать на клавиатуре на клавишу «Enter».

В окне показаны результаты поиска, и для запуска Редактора реестра необходимо нажать на файл «regedit».

Поле этого открывается окно «Редактор реестра».

Для создания копии всего системного реестра нужно войти в меню «Файл», и выбрать в контекстном меню пункт «Экспорт…».

Для создания копии конкретного раздела или подраздела реестра необходимо кликнуть правой кнопкой мыши по выбранному разделу или подразделу реестра, и в контекстном меню выбрать пункт «Экспортировать». На этом примере, я сохраняю весь реестр, поэтому для этого я нажал на пункт «Компьютер».

В появившемся окне Проводника необходимо выбрать место для размещения копии реестра на компьютере. По умолчанию операционная система предлагает сохранить резервную копию реестра в папке «Мои документы». Сохранить резервную копию реестра будет лучше не в папке «Мои документы», которая находится в системном разделе («Локальный диск С:»).

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

Я выбрал для хранения резервной копии системного реестра другой раздел («Локальный диск D:») жесткого диска своего компьютера. В одной из папок (папка «Файлы») этого диска, я создал папку «Копии реестра» для дальнейшего хранения в ней файлов сохраненных копий реестра.

Далее потребуется дать имя для сохраненной копии реестра. Я ее так и назвал — «Копия реестра» (расширение .reg), вы можете назвать ее по-другому — backup.reg, или как-нибудь иначе.

Расширение файла (.reg) может не отображаться на экране монитора, так как по умолчанию в настройках Windows включен пункт «Скрывать расширения зарегистрированных типов файлов».

Затем в имени файла я ввел дату создания этой копии, чтобы потом ее не перепутать с другими резервными копиями реестра.

Если вы сохраняете не весь реестр, а только какую-либо часть реестра, то тогда в окне «Экспорт файла реестра», в поле «Выбранная ветвь» будет показан путь этой ветви реестра.

Далее потребуется нажать на кнопку «Сохранить». Некоторое время будет происходить процесс сохранения копии реестра. Количество времени, которое займет этот процесс, зависит от размера реестра, который он занимает на вашем компьютере.

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

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

История возникновения и развития реестра

Реестр Windows 3.1

Сам реестр как древовидная иерархическая база данных (registration database — регистрационная база) впервые появился в Windows 3.1 (апрель ). Это был всего один двоичный файл, который назывался REG.DAT и хранился в каталоге C:\Windows\. Реестр Windows 3.1 имел только одну ветку HKEY_CLASSES_ROOT. Он служил для связи DDE, а позднее и OLE-объектов.

Одновременно c появлением реестра в Windows 3.1 появилась программа REGEDIT.EXE для просмотра и редактирования реестра.

Первый реестр уже имел возможность импорта данных из *.REG-файлов. В базовой поставке шёл файл SETUP.REG, содержащий данные по основным расширениям и типам файлов.

Реестр Windows 3.1 имел ограничение на максимальный размер файла REG.DAT — 64 Кбайт. Если реестр превышал этот размер, файл реестра (REG.DAT) приходилось удалять и собирать заново либо из *.REG-файлов, либо вводить данные вручную.

Реестр Windows NT 3.1

Следующий шаг был сделан в Windows NT 3.1 (июль ). Произошёл отказ от устаревших файлов MS-DOS: AUTOEXEC.BAT и CONFIG.SYS, а также от INI-файлов, как от основных файлов конфигурации. На «регистрационную базу» (реестр) была переведена вся конфигурация системы. Основой конфигурации системы стал реестр. Он имел 4 корневых раздела: HKEY_ LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT и HKEY_USERS.

Реестр стал «сборным»: на диске он хранился в файлах: DEFAULT, SOFTWARE, SYSTEM, а при запуске системы из этих файлов собиралась единая БД.

В комплекте поставки оставался файл REGEDIT.EXE, который по-прежнему позволял просматривать и редактировать только ветку HKEY_CLASSES_ROOT, и появился файл REGEDT32.EXE, который позволял редактировать все ветки реестра.

Далее технология и идеология (назначение) реестра уже не менялись. Все последующие версии Windows (NT 3.5, 95, NT 4.0, 98, 2000, XP, Vista, 7,8) использовали реестр как основную БД, содержащую все основные данные по конфигурации как самой ОС, так и прикладных программ. Далее менялись названия файлов реестра и их расположение, а также название и назначение ключей.

1.7 Структура реестра

Реестр состоит из следующих разделов (ветвей):

1)   HKEY_CURRENT_USER — данный раздел является корневым для данных
конфигурации пользователя, вошедшего в систему в настоящий момент. Здесь
хранятся папки пользователя, цвета экрана и параметры панели управления. Эти
сведения сопоставлены с профилем пользователя. Вместо полного имени раздела
иногда используется аббревиатура HKCU;

2)   HKEY_USERS — данный раздел содержит все
активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER
является подразделом раздела HKEY_USERS. Вместо полного имени раздела иногда
используется аббревиатура HKU;

4)      HKEY_CLASSES_ROOT — является подразделом HKEY_LOCAL_MACHINE
\Software. Хранящиеся
здесь сведения обеспечивают выполнение необходимой программы при открытии файла
с использованием проводника. Вместо полного имени раздела иногда используется
аббревиатура HKCR. Начиная с Windows 2000, эти сведения хранятся как в
HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER. Раздел HKEY_LOCAL_
MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко
всем пользователям локального компьютера. Параметры, содержащиеся в разделе
HKEY_CURRENT_USER\Software\Classes, переопределяют принятые по умолчанию и
относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в
себя данные из обоих источников.

Кроме того, раздел HKEY_CLASSES_ROOT предоставляет эти объединенные
данные программам, разработанным для более ранних версий Windows. Изменения
настроек текущего пользователя выполняются в разделе
HKEY_CURRENT_USER\Software\Classes. Модификация параметров по умолчанию должна
производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes. Данные из разделов,
добавленных в HKEY_CLASSES_ROOT, будут сохранены системой в разделе
HKEY_LOCAL_MACHINE\Software\Classes. Если изменяется параметр в одном из
подразделов раздела HKEY_CLASSES_ROOT и такой подраздел уже существует в
HKEY_CURRENT_USER\Software\Classes, то для хранения информации будет
использован раздел HKEY_CURRENT_USER\Software\Classes, а не
HKEY_LOCAL_MACHINE\Software \Classes;

5)   HKEY_CURRENT_CONFIG — данный раздел содержит сведения о профиле
оборудования, используемом локальным компьютером при запуске системы.

2.
ПОСТАНОВКА ЗАДАЧИ

В соответствии с заданием курсового проекта, должна быть исследована
структура системного реестра и разработано программное обеспечение для
просмотра и изменения системного реестра.

Приложение должно обладать следующим функционалом:

)     вывод всех веток реестра;

2)      просмотр списка ключей для определенной директории реестра;

)        добавление новых ключей со значениями разного типа;

)        редактирование ключей;

)        добавление новой папки (директории) в реестр;

)        удаление определенной папки (директории) и ключа;

)        вывод сведений о программе.

Приложение должно быть разработано для операционной системы Window 7 с помощью инструментального
средства Microsoft Visual Studio 2010, на основе интерфейса Windows Forms.

3.
ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Критика

Способ хранения параметров и настроек операционной системы при помощи реестра Windows часто подвергается критике по следующим причинам:

  • Реестр хранится в небольшом количестве объёмных (по нескольку сотен мегабайт) файлов, вследствие чего высока вероятность повреждения данных. Также большие файлы подвержены фрагментации, что замедляет доступ к реестру на обычных жёстких дисках (твердотельные накопители решают эту проблему).
  • В связи с тем, что, помимо настроек, в реестре хранится различная информация системы и приложений (например, многие приложения хранят в реестре список недавно открытых файлов), размер реестра значительно увеличивается по мере использования операционной системы. Эта проблема частично решается при помощи специальных утилит.
  • Не все настройки системы хранятся в реестре, соответственно перенос настроек системы путём копирования реестра невозможен.
  • Некоторые программы не могут работать без параметров, занесенных в реестр, что создаёт трудности при переносе их с компьютера на компьютер, или теряют данные после переустановки операционной системы.
  • Реестр очень похож на виртуальную файловую систему, работающую поверх реальной файловой системы. При этом, как для файловой системы, реестр очень неустойчив к сбоям. Фактически один неверный байт в файле куста (ветки реестра, подобие корневому каталогу в файловых системах) приводит к сбою при попытке загрузки куста, и (для системных кустов) отказу операционной системы. Надёжность такого реестра никогда не будет выше надёжности файловой системы, на которой расположены его файлы. Однако версии Windows начиная с NT используют логи транзакций в качестве средства защиты от повреждений при обновлении реестра. Текущие версии Windows используют логи двух уровней для того, чтобы обеспечить целостность реестра в случае отказа питания или других подобных событий во время обновления реестра. Даже в случае ошибки, из-за которой невозможно восстановить реестр, Windows может починить и реинициализировать повреждённые записи реестра во время загрузки системы.

Критики приводят в пример UNIX-подобные операционные системы, где нет реестра и выполняемые им задачи решаются другими средствами.

Реестр Windows 7. Где он находится?

Ничего сложного нет и на операционной системе Windows 7. Реестр располагается также в папке Windows. Выйти на реестр можно также, как мы описали выше, то есть с помощью программы «regedit». В Windows 7 у вас есть возможность поменять некоторые характеристики системы с помощью реестра. Что можно сделать? У вас есть возможность изменить фоновый рисунок экрана входа Windows LogOn. Вы можете поставить любой рисунок на приветствие Windows. Вы можете персонализировать заголовок в Internet Explorer 8. Вы можете отключить функцию Aero Snap. Функция позволяет автоматически редактировать размер окна, при его помещении в разные края экрана. Кто-то не считает эту функцию удобной. Эти пользователи могут отключить ее. Вы можете изменить поведение стековой кнопки на панели задач. Вы можете редактировать задержку предварительного просмотра панели задач. С помощью реестра можно заставить окна появляться быстрее при их предварительном просмотре. Вы также можете изменить характеристики задержки функции Aero Peek. Вот ссылка, где подробно описано, как нужно действовать: 7 настроек интерфейса Windows 7 через реестр.

Синтаксис reg-файлов

Для примера мы поменяем клавиши смены языка ввода с Alt + Shift на Ctrl + Shift.
На интересует ветка реестра

HKEY_CURRENT_USER\Keyboard Layout\Toggle

И ключи Hotkey, Language Hotkey и Layout Hotkey, которые имеют значения по умолчанию 1, 1 и 2, соответственно.
Для изменения сочетания клавиш нам нужно будет присвоить им новые значения «Hotkey»=»2», «Language Hotkey»=»2», «Layout Hotkey»=»3»

Итак, для создания reg-файла открываем текстовый редактор, например, Блокнот Windows. Вставляем в окно редактора следующий код:

Windows Registry Editor Version 5.00

;Переключение языка по левым Ctrl + Shift

"Hotkey"="2"
"Language Hotkey"="2"
"Layout Hotkey"="3"

Windows Registry Editor Version 5.00 — это строка приветствия системы, позволяющая Windows определить, какого типа файл был запущен. Обязательна в начале всех reg-файлов, прописывается один раз.;Переключение языка по левым Ctrl + Shift — строка комментария. Любая строка файла изменения реестра, начинающаяся точкой с запятой, не будет исполняться системой, служит для пояснительных записей. Комментарии прописываются сколько угодно раз. — куст реестра, в котором будут производиться изменения. О множественных записях подробно отметим чуть ниже.»Hotkey»=»2″, «Language Hotkey»=»2», «Layout Hotkey»=»3» — ключи реестра, расположенные в обрабатываемой ветке, и задаваемые им параметры. Каждый ключ с новой строки.

После этого жмём в меню текстового редактора на кнопку Файл, выбираем пункт Сохранить как, в строке Тип файла выбираем Все файлы, а в строке Имя файла задаём название, в конце которого ставим точку и дописываем расширение .reg.

Готовые файлы реестра для настройки сочетания клавиш смены языка можно скачать ниже:

Смена языка по Alt + Shift: language_alt_shift
Смена языка по Ctrl + Shift: language_ctrl_shift

Запрет отображения программ в списке часто используемых

По умолчанию в меню Пуск отображается список наиболее часто используемых программ для быстрого доступа к этим программам. Эту возможность можно отключить с помощью интерфейса Windows. Но что делать если сама возможность нас устраивает, но мы не хотим чтобы какие-то определенные программы не отображались в этом списке? Добавьте в раздел реестра (или отредактируйте существующий): пустой строковый параметр NoStartPage, где prog.exe — имя приложения.

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

и установите значение параметра «HideIcons»=»1» Запрет использования клавиши Win — Чтобы запретить использование Win, внесите следующие изменеия в реестр (привожу в виде reg файла чтобы не запутаться с вводом значений):Windows Registry Editor Version 5.00«Scancode Map»=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5B,E0,00,00,5C,E0,00,00,00,00

Запрет обновления метки последнего доступа к файлам каталога — Если у вас файловая система NTFS, при открытии каталога обновляются метки последнего доступа ко всем файлам этого каталога. Чтобы отключить эту функцию(это ускорит работу системы при большом количестве файлов), необходимо в раздел

добавить параметр типа DWORD «NtfsDisableLastAccessUpdate»=»1»

4.3 Описание основных процедур и функции

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

Основные функции, используемые при создании данного программного
обеспечения:

—     private void FillNodes(RegistryKey reg, string[]
s, TreeNode tn) — процедура, выводящая на экран все директории реестра.
Блок-схема алгоритма работы данной процедуры приведен на листе 1 графической
части приложения Б;

—     private RegistryKey FindReg(TreeNode tnC, RegistryKey rg, TreeNode tnS) — метод выполняющий поиск ключа. Данная функция
возвращает экземпляр класса RegistryKey. Блок-схема алгоритма работы данной функции приведен на листе 2
графической части приложения Б;

—        private RegistryKey Findreg_by_path(TreeNode te) —
функция, выполняющая поиск ключа по пути;

         private void FillGrid(string[] str, RegistryKey rg) — процедура,
которая заполняет таблицу именами и значениями ключей. Блок-схема алгоритма
работы данной процедуры приведен на листе 3 графической части приложения Б.

5.
ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Произведем тестирование разработанного программного обеспечения с целью
выявления ошибок и неполадок. Тестирование программы будет выполняется на
ноутбуке со следующей конфигурацией: Intel Core i7 2,2GHz, 4Gb DDR3, Windows Seven Ultimate.

Данное приложение разработано для операционных систем Windows XP/Vista/Seven. Для полного функционирования
данного программного обеспечения необходимо определенное программное окружение,
а именно, установленная программная платформа .NET Framework версии 4.0.

Для подтверждения работоспособности программы необходимо протестировать
использование все функции программы.

План тестирования:

1)   создание нового раздела;

2)      добавление новых ключей со значениями разного типа;

)        изменение ключа;

)        удаление раздела со всеми ключами.

На каждом этапе тестирования результаты программного обеспечения будут
сравниваться с результатами стандартной утилиты редактирования реестра Regedit, поставляемой с операционной
системой Windows Seven Ultimate.

Типы данных в реестре

В реестре могут храниться данные семи типов:

  • REG_BINARY хранит произвольные двоичные данные в «сыром» виде, без переформатирования и синтаксического разбора. Эти данные можно просматривать в двоичном или шестнадцатеричном виде при помощи редактора реестра.
  • REG_DWORD хранит параметры, представленные восьмибайтными (длинные) целыми числами. Этот тип данных обычно применяется, когда параметр обозначает счетчик или интервал. Еще одно его применение в качестве флага (0 — флаг снят, 1 — установлен).
  • REG_SZ представляет собой обычную строку в кодировке Unicode любой длины. Наиболее часто в этом типе данных хранится информация, которая будет читаться пользователем, пути доступа, названия устройств и т.п.
  • REG_EXPAND_SZ — вид REG_SZ, используемый приложениями для хранения конструкций вида %SystemRoot%\System32, например. При чтении этой строки Windows заменяет %SystemRoot% на имя папки, куда она установлена.
  • REG_MULTI_SZ представляет собой набор произвольного количества параметров типа REG_SZ. В этом типе данных хранится, например, список IP адресов, назначенных сетевому интерфейсу.
  • REG_FULL_RESOURCE_DESCRIPTOR применяется для кодирования информации о системных ресурсах, необходимых для какого-либо из устройств.
  • REG_NONE служит как семафор, т.е. параметр существует, но не содержит ни какого значения. Некоторые приложения проверяют наличие этого параметра и, исходя из результата проверки, выполняют или не выполняют действие.

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

Какие опасности таит незнание работы с реестром

Временами, могут возникать большие проблемы с операционной системой. Тогда редактирование реестра поможет вам в исправлении ошибок.

Некорректная работа реестра Windows может вызвать зависание устройства, плохую работу операционной системы. А также могут возникнуть проблемы с одной или даже со многими программами.

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

Рис. 3. Если не знать, что такое реестр, можно иметь большие проблемы с вирусами.

Если говорить конкретно, то проблемы, связанные с реестром, могут быть следующими:

  • Снижение производительности компьютера. Здесь все просто. Выше мы говорили о том, что реестр представляет собой базу данных. Так вот, чем дольше Вы пользуйтесь своей ОС, тем больше разрастается эта самая база. Со временем она становится настолько большой, что система уже не может ее обрабатывать.
  • Различные сбои, связанные с работой курсора, клавиатуры (кнопок) и других устройств. К примеру, довольно часто возникает ситуация, когда при однократном щелчке выполняется то действие, которое должно выполняться при двойном. И это далеко не самый плохой вариант. Исправить такие проблемы можно именно при помощи реестра.
  • Проблемы со шрифтами. Так буквы могут отображаться некорректно, криво, края могут быть стерты или изогнуты и так далее. Эта проблема также исправляется с помощью regedit.
  • Некорректное отображение списка программ. Например, в меню «Установка и удаление программ» находятся удаленные давно программы. Это возникает, опять же, из-за каких-то сбоев в реестре операционной системы.

На самом деле подобных проблем может быть очень много, и если Вы будете искать в интернете, как их решить, обязательно попадете на вариант, где используется реестр. Вполне логично, что для этого необходимо знать, что же вообще такое regedit и как к нему добраться.

Поэтому чтобы предотвратить подобные проблемы, важно временами очищать и проводить оптимизацию реестра

Программы для работы с реестром — обзор

В статье мы несколько раз упоминали о стандартном для виндовс приложении regedit.

Использовать можно сторонние утилиты:

  • Позволяет чистить реестр, удалять мусор, редактировать записи, разделы, отслеживать состояние ключей, осуществлять предпросмотр файлов с расширением reg. Доступна на русском. Недостаток — платная;
  • registry workshop. Утилита ищет ключи, создает закладки, сохраняет резервные копии, восстанавливает из них данные даже при последующем запуске. Есть инструмент редактирования и просмотра файлов, автоматической очистки мусора. Программа — платная;
  • work with registry. Быстро находит ключи, ошибки, удаляет лишнее. Есть функция удаления конкретных ветвей. Платная;
  • advanced regedit. Бесплатный редактор позволяет работать с ключами, искать папки, изменять значения. Недостаток — не русифицирована.

1.5 Современный реестр Windows

Реестр в том виде, как его использует Windows и как видит его
пользователь в процессе использования программ работы с реестром, некоторым
образом «нигде не хранится», а формируется из различных данных. Чтобы
получилось то, что видит пользователь, редактируя реестр, происходит следующее.

Вначале, в процессе установки и настройки Windows, на диске формируются
файлы, в которых хранится часть данных относительно конфигурации системы.

Затем, в процессе каждой загрузки системы, а также в процессе каждого
входа и выхода каждого из пользователей, формируется некая виртуальная
сущность, называемая «реестром» — объект REGISTRY\. Данные для формирования
«реестра» частично берутся из тех самых файлов (Software, System …), частично
из информации, собранной ntdetect при загрузке (HKLM\Hardware\Description).

То есть часть данных реестра хранится в файлах, а часть данных
формируется в процессе загрузки Windows.

Для редактирования, просмотра и изучения реестра стандартными средствами
Windows (программы regedit.exe и regedt32.exe) доступны именно ветки реестра.
После редактирования реестра и/или внесения в него изменений эти изменения
сразу записываются в файлы.

Однако есть программы сторонних разработчиков, которые позволяют работать
непосредственно с файлами.

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

Don’t See HKEY_CURRENT_USER?

HKEY_CURRENT_USER may be hard to find if Registry Editor has been used on your computer before since the program takes you directly to the last place you were. Since all computers with Windows Registry have this hive, you aren’t actually missing HKEY_CURRENT_USER if you can’t see it, but you might need to hide a few things in order to find it.

Here’s what to do: From the left-hand side of Registry Editor, scroll to the very top until you see Computer and HKEY_CLASSES_ROOT. Select the arrow or plus sign to the left of the HKEY_CLASSES_ROOT folder to minimize/collapse that entire hive. The one just below it is HKEY_CURRENT_USER.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector