Полезные статьи

Использовать файл реестра

мЙЮОЩЕ ЪБРЙУЙ
Linux, РТПЗТБННЩ — РТПВМЕНЩ Й ТЕЫЕОЙС

ъБРХУЛ тЕДБЛФПТБ ТЕЕУФТБ, УПЪДБОЙЕ

Й РТЙНЕОЕОЙЕ reg-ЖБКМБ


ъБРХУЛ тЕДБЛФПТБ тЕЕУФТБ:

1.1) пФЛТПКФЕ НЕОА рХУЛ -> чУЕ РТПЗТБННЩ -> уФБОДБТФОЩЕ -> чЩРПМОЙФШ (ЙМЙ ОБЦНЙФЕ УПЮЕФБОЙЕ ЛМБЧЙЫ Win+R)
1.2) чЧЕДЙФЕ ЛПНБОДХ regedit Й ОБЦНЙФЕ пл

2.1) пФЛТПКФЕ НЕОА рХУЛ
2.2) ч УФТПЛЕ РПЙУЛБ ЧЧЕДЙФЕ regedit Й ОБЦНЙФЕ Enter

3.1) ъБРХУФЙФЕ рТПЧПДОЙЛ Windows (Explorer)
3.2) пФЛТПКФЕ РБРЛХ C:\Windows Й ДЧБЦДЩ ЭЕМЛОЙФЕ РП ЖБКМХ regedit.exe

1.1) пФЛТПКФЕ вМПЛОПФ (Notepad).
1.1.1) пФЛТПКФЕ НЕОА рХУЛ -> чУЕ РТПЗТБННЩ -> уФБОДБТФОЩЕ -> вМПЛОПФ (ЙМЙ ОБЦНЙФЕ УПЮЕФБОЙЕ ЛМБЧЙЫ Win+R -> ЧЧЕДЙФЕ notepad -> ОБЦНЙФЕ пл).
1.2) уЛПРЙТХКФЕ ОЕПВИПДЙНЩК чБН ЛПД Ч ПЛОП РТПЗТБННЩ вМПЛОПФ.
1.3) ч НЕОА РТПЗТБННЩ ОБЦНЙФЕ жБКМ Й ЧЩВЕТЙФЕ РХОЛФ уПИТБОЙФШ.
1.4) ч ПФЛТЩЧЫЕНУС ПЛОЕ:
1.4.1) хЛБЦЙФЕ НЕУФП УПИТБОЕОЙС ЖБКМБ.
1.4.2) хЛБЦЙФЕ ЙНС ЖБКМБ Й ТБУЫЙТЕОЙЕ .reg (оБРТЙНЕТ: Demo.reg)
1.4.3) чЩВЕТЙФЕ ФЙР ЖБКМБ: чУЕ ЖБКМЩ (*.*).

чОЙНБОЙЕ:
еУМЙ чЩ ПУФБЧЙФЕ ФЙР ЖБКМБ: фЕЛУФПЧЩЕ ЖБКМЩ (*.txt), ФП ЙНС ЖБКМБ ПВСЪБФЕМШОП ОХЦОП ЧЪСФШ Ч ЛБЧЩЮЛЙ. (оБРТЙНЕТ: «Demo.reg»)

1.5) оБЦНЙФЕ ОБ ЛОПРЛХ уПИТБОЙФШ.

еУМЙ Х чБУ ХВТБО ЖМБЦПЛ уЛТЩЧБФШ ТБУЫЙТЕОЙС ДМС ЪБТЕЗЙУФТЙТПЧБООЩИ ФЙРПЧ ЖБКМПЧ Ч рБТБНЕФТЩ РБРПЛ (рБОЕМШ ХРТБЧМЕОЙС\пЖПТНМЕОЙЕ Й РЕТУПОБМЙЪБГЙС\рБТБНЕФТЩ РБРПЛ -> чЛМБДЛБ чЙД), ФП чЩ НПЦЕФЕ УПЪДБФШ reg-ЖБКМ УМЕДХАЭЙН УРПУПВПН:

2.1) ч РБРЛЕ, ЗДЕ чЩ ИПФЙФЕ УПЪДБФШ reg-ЖБКМ, ЭЕМЛОЙФЕ РТБЧПК ЛОПРЛПК НЩЫЙ.
2.2) чП ЧУРМЩЧЫЕН НЕОА ЧЩВЕТЙФЕ уПЪДБФШ -> фЕЛУФПЧЩК ДПЛХНЕОФ.
2.3) уПФТЙФЕ ЙНС Й ТБУЫЙТЕОЙЕ ЖБКМБ .txt, ХЛБЦЙФЕ ОЕПВИПДЙНПЕ чБН ЙНС ЖБКМБ Й ТБУЫЙТЕОЙЕ .reg, ОБЦНЙФЕ ЛМБЧЙЫХ Enter, Б ЪБФЕН ЛОПРЛХ дБ.
2.4) эЕМЛОЙФЕ ОБ УПЪДБООПН чБНЙ ЖБКМЕ РТБЧПК ЛОПРЛПК НЩЫЙ Й ЧЩВЕТЙФЕ РХОЛФ йЪНЕОЙФШ.
2.5) уЛПРЙТХКФЕ ОЕПВИПДЙНЩК чБН ЛПД Ч ПЛОП РТПЗТБННЩ вМПЛОПФ.
2.6) оБЦНЙФЕ УПЮЕФБОЙЕ ЛМБЧЙЫ CTRL+S.

3.1) чПЪШНЙФЕ МАВПК ЗПФПЧЩК reg-ЖБКМ.
3.2) эЕМЛОЙФЕ ОБ ОЕН РТБЧПК ЛОПРЛПК НЩЫЙ Й ЧЩВЕТЙФЕ РХОЛФ йЪНЕОЙФШ.
3.3) уЛПРЙТХКФЕ ОЕПВИПДЙНЩК чБН ЛПД Ч ПЛОП РТПЗТБННЩ вМПЛОПФ.
3.4) ч НЕОА РТПЗТБННЩ ОБЦНЙФЕ жБКМ Й ЧЩВЕТЙФЕ РХОЛФ уПИТБОЙФШ лБЛ.
3.5) ч ПФЛТЩЧЫЕНУС ПЛОЕ:
3.5.1) хЛБЦЙФЕ НЕУФП УПИТБОЕОЙС ЖБКМБ.
3.5.2) хЛБЦЙФЕ ЙНС ЖБКМБ Й ТБУЫЙТЕОЙЕ .reg (оБРТЙНЕТ: Demo.reg)
3.5.3) чЩВЕТЙФЕ ФЙР ЖБКМБ: чУЕ ЖБКМЩ (*.*).
3.6) оБЦНЙФЕ ОБ ЛОПРЛХ уПИТБОЙФШ

эЕМЛОЙФЕ ДЧБ ТБЪБ МЕЧПК ЛОПРЛПК НЩЫЙ ОБ reg-ЖБКМЕ Й ОБЦНЙФЕ ЛОПРЛХ дБ.

1) эЕМЛОЙФЕ РТБЧПК ЛОПРЛПК НЩЫЙ ОБ reg-ЖБКМЕ.
2) чЩВЕТЙФЕ РХОЛФ уМЙСОЙЕ Й ОБЦНЙФЕ ЛОПРЛХ дБ.

ipmnet.ru

Файл реестра или INI для хранения настраиваемых пользователем параметров приложения

Я новый программист Windows, и я не уверен, где я должен хранить пользовательские настраиваемые параметры приложения. Я понимаю необходимость предоставления пользователям удобных средств для изменения параметров приложения, например Edit | Форма настроек или аналогичная. Но где я должен хранить значения после того, как пользователь нажимает кнопку «Применить» в этой форме?

Каковы плюсы и минусы сохранения настроек в реестре Windows и их сохранение в локальном файле INI или файле конфигурации или аналогичном?

12 ответов

Плюсы файла конфигурации:

  • Легко сделать. Не нужно знать какие-либо вызовы Windows API. Вам просто нужно знать интерфейс ввода-вывода файлов вашего языка программирования.
  • Портативный. Если вы переносите приложение на другую ОС, вам не нужно изменять свой формат настроек.
  • Пользователь редактируемые. Пользователь может редактировать файл конфигурации за пределами выполняемой программы.
  • Плюсы реестра:

    • Secure. Пользователь не может случайно удалить файл конфигурации или испортить данные, если он не знает о regedit. И тогда пользователь просто просит неприятностей.
    • Я не эксперт по программированию Windows, но я уверен, что использование реестра облегчает работу с другими предметами Windows (пользовательские настройки, сетевое администрирование, например групповая политика или что-то еще).
    • Если вам просто нужен простой способ хранения информации о конфигурации, я бы рекомендовал файл конфигурации, используя INI или XML в качестве формата. Я предлагаю использовать реестр только в том случае, если есть что-то конкретное, из которого вы хотите отказаться от использования реестра.

      Jeff Atwood имеет отличную статью о реестре Windows и почему лучше использовать файлы .INI.

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

    • Реестр — это единственная точка отказа. Поэтому каждый совет по редактированию реестра, который вы когда-либо найдете, начинается с большого толстого кричащего оговорки о том, как вы можете сломать свой компьютер с помощью regedit.
    • Реестр непрозрачный и двоичный. Насколько мне не нравится налог с угловыми скобками, по крайней мере XML файлы конфигурации достаточно удобочитаемы для человека, и они позволяют столько комментариев, сколько сочтет нужным.
    • Реестр должен быть синхронизирован с файловой системой. Удалите приложение без «удаления» его, и вы останетесь с устаревшим реестром. Или, если приложение имеет плохо написанный деинсталлятор. Файловая система больше не является выражением о записи — ее нужно как-то синхронизировать с реестром. Это полное нарушение принципа DRY.
    • Реестр монолитный. Скажем, вы хотели перенести приложение на другой путь на свой компьютер или даже на другую машину. Удачи, извлекая соответствующие настройки для одного конкретного приложения из гигантского реестра tarball. У данного приложения обычно есть десятки настроек, разбросанных по всему реестру.
    • Использование ini файла в том же каталоге, что и приложение, позволяет создать резервную копию приложения. Поэтому после перезагрузки ОС вы просто восстанавливаете каталог приложения, и у вас есть конфигурация так, как вы хотите.

      В соответствии с документацией для GetPrivateProfileString, вы должны использовать реестр для хранения информации о инициализации.

      Однако при этом, если вы все еще хотите использовать .ini файлы и использовать стандартные API-интерфейсы профиля ( GetPrivateProfileString , WritePrivateProfileString и т.п.) для доступа к ним, они предоставляют встроенные способы автоматического предоставить «виртуальные файлы .ini», поддерживаемые реестром. Беспроигрышная!

      Я бы посоветовал не использовать реестр, если это приложение не нуждается в нем. По моему мнению, Microsoft пытается отказать в использовании реестра из-за гибкости файлов настроек. Кроме того, я бы не рекомендовал использовать .ini файлы, но вместо этого использовал некоторые встроенные функции для .Net для сохранения пользователя/приложения настройки.

      Есть еще одно преимущество использования INI файла над реестром, о котором я не упоминал: Если пользователь использует какое-то шифрование на основе томов и файлов, они могут легко зашифровать файл INI. С реестром это, вероятно, будет более проблематичным.

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

      Я обычно разбираюсь в таком виде (если формат в файле .ini имеет значение option = value, 1 на строку, комментарии начинаются С#):

      Изменить: Извините, я думал, что вы указали язык. Реализация выше находится на С#.

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

      Реестр оптимизирован для быстрого доступа и простого обновления, и это единственный способ выполнить определенные действия, связанные с Windows, такие как привязка к расширению. И вы можете игнорировать аргумент об удалении одного каталога для удаления вашей программы — Windows Vista не позволит вам изменять файлы в папке Program Files, поэтому ваша конфигурация должна будет идти в другой папке в любом случае.

      Существует общее руководство для программирования Windows — делайте то, что Microsoft ожидает от вас, и ваша жизнь будет намного проще.

      Тем не менее, я вижу привлекательность файла INI, и я бы никого не обвинял в этом.

      Существующие ответы охватывают много оснований, но я думал, что упомянул еще один момент.

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

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

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

      Например, скажем, программа A и программа B указывают на одну и ту же базу данных. У вас может быть «системный» параметр реестра для строки подключения. Если вы хотите указать другую базу данных, вы можете изменить строку соединения в одном месте, и обе программы будут выполняться в другой базе данных.

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

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

      qaru.site

      Использование файла реестра

      Файл реестра — это обычный текстовый файл с расширением .reg, который со­держит один или более чем один раздел или значение реестра. Двойной щелчок мышью на файле .reg запустит редактор реестра, который «свяжет» содержимое файла с реестром.

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

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

      Экспорт файла реестра

    • Откройте редактор реестра и найдите ветвь, которую хотите экспортировать.
    • В меню Файл (File) выберите Экспорт (Export), укажите имя файла, выберите папку назначения и нажмите ОК. Все значения и подразделы выбранной ветви будут сохранены в этом файле. Убедитесь, что имя файла имеет расширение .reg.
    • Импорт файла реестра

      Для копирования информации из файла обратно в реестр его необходимо приме­нить. Самый легкий способ сделать это — дважды щелкнуть мышкой на названии файла (неважно, запущен редактор реестра или нет).

      Если на этой стадии вы видите подсказку, нажмите Продолжить. Отвечайте Да на вопрос, хотите ли вы добавить информацию из файла в реестр, и, наконец, нажмите ОК, когда увидите сообщение «Информация из Patch.reg была успешно внесена в реестр». (Файл реестра можно применить и из редактора реестра, в меню Файл (File) выберите Импорт, найдите файл реестра и нажмите ОК.)

    • Удаленное редактирование реестра::
    • Просмотр и редактирование реестра удаленного компьютераЧтобы просмотреть реестр удаленного.

      Архивация реестра Windows 7В некотором смысле реестр Windows — слабое звено в стабильности и.

      Ограничение прав на разделы реестра в Windows 7Система прав доступа не просто защищает файлы и.

      • Поиск в реестре::
      • Как осуществить поиск в реестре Windows 7У редактора реестра есть простая функция поиска.

        Разница в реестре 64 битной версии Windows64-битное программное обеспечение с трудом удается.

        Основные ветви реестра Windows 7Существует пять основных ветвей реестра, которые соответствуют.

        cmd4win.ru

        Windows Основы работы с реестром — синтаксис, структура reg-файла.

        ____________________
        что такое reg-файл?
        это файл,несущий в себе информацию,для взаимодействия с элементами реестра.

        Внимание!
        перед тем как что либо сделать,обязательно сделайте резервную копию реестра.

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

        Итак,самый распространенный инструмент для работы с реестром-это редактор реестра.— утилита regedit.

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

        Попробуем?
        Давайте создадим собственную команду в контексном меню.
        Для этого откроем раздел

        создаем раздел под именем name.
        в нем еще один раздел-command.

        В разделе name-создадим строковой параметр —reg_sz
        и задаем ему любое значение-например

        Нажимая мы вызываем редактор реестра.

        Можно упростить себе задачу,воспользовавшись твиком реестра.

        Да.
        Можно не ковыряться в редакторе реестра,а просто внести в реестр нужную информацию используя файл с расширением .reg

        Как это выглядит на практике?

        Если все описанные операции записать в reg-файл,то получим следующее:

        Сохранить как-все файлы-имя с расширением .reg (например tweak.reg)
        По полученному файлу двойной клик,применить,ок.
        Заглянем в реестр-видим,что раздел command удален,а в разделе name удален параметр,который мы прежде создали.
        вот сейчас пора разобраться с синтаксисом.

        2)
        Следующая строка должна быть пустой.

        3)
        Далее идет указание пути к разделу.
        в нашем случае раздел-name

        Примечание:
        Если раздела не существует,то он будет создан.
        Если он есть-то в него будут добавлены параметры или изменения,содержащиеся в твике.
        Другими словами элемент будет перезаписан.

        4)
        Имя параметра— это имя импортируемого параметра данных. Если элемент данных файла отсутствует в реестре, REG-файл добавляет его (со значением). Если элемент данных существует, значение в REG-файле переписывает существующее значение. Имя элемента данных заключается в кавычки. За именем элемента данных следует знак равенства (=).

        5)
        Значение,тип параметра

      • REG_BINARY шестнадцатеричное
      • REG_DWORD dword
      • REG_EXPAND_SZ шестнадцатеричное
      • REG_MULTI_SZ шестнадцатеричное

      Формат записи для их добавления несколько другой. Для параметров типа DWORD используется строка
      «Имя_параметра_данных»=»dword:Значение_данных1» Здесь «Имя_параметра_данных» — имя параметра, dword — указывает на тип этого параметра (буквы должны быть обязательно маленькие!) и после двоеточия следует значение из восьми цифр в шестнадцатеричном (!) формате. Однако большинство параметров DWORD имеют значение либо 0, либо 1, значит, следует написать соответственно либо 00000000, либо 00000001 вместо значков ХХХХХХХХ. Пробелы в строке не допускаются.Для добавления двоичного параметра формат записи несколько иной:
      «Имя_параметра_данных»=hex:XX,XX,XX. После знака «=» идет hex, т.е. указывается, что это будет двоичный параметр, затем идут шестнадцатеричные числа, отделенные запятой. Например, если необходимо добавить двоичный параметр равный «be 00 00 00», то следует писать строку
      «Имя_параметра_данных»=hex:be,00,00,00В реестре существуют параметры «По умолчанию» («Default»). Чтобы присвоить им какое-то значение через reg-файл, надо добавить такую строку:
      @=»Тип_данных:Значение_данных»Здесь значок @ показывает, чтоприсваивается значение параметра «По умолчанию». Он не заключается в кавычки.

      Примечание 1: Можно ввести несколько строк элементов данных для одного пути реестра.После того, как создан такой файл, следует просто запустить его как обычную программу, будет выдан запрос о необходимости провести изменения в реестре, и после положительного ответа информация из файла будет импортирована. О результатах импортирования Windows сообщит в появившемся после этого окне.

      Примечание 2: Windows 2000/XP обладает обратной совместимостью и может обрабатывать файлы, созданные в Windows 9x. Но если был экспортирован файл в Windows XP и перенесен на Windows 9x, то необходимо вручную изменить первую строчку на REGEDIT4.

      Если мы создаем обычный строковой параметр-то его символ в твике мы видим как знак @.
      Попробуйте заключить этот знак в кавычки и он превратится в имя параметра.

      Так.
      А что за минусы я поставил при создании твика?
      Если мы желаем удалить раздел то ставим минус перед значением адреса раздела.
      Если надо удалить параметр-ставим минус после знака равно за параметром.
      Все видно на примере.
      Однако в контексном меню у вас остался не рабочии пункт.
      Вот и попробуйте убрать его твиком.
      Кстати.
      Если вы захотите применить множество твиков,то замучаетесь нажимать ок.
      Тогда вы можете применить твик через командную строку используя команду regedit /s-она подавляет появление диалоговых окон.

      Вот тут кстати пора говорить и об использовании командной строки.

      safezone.cc

      Использовать файл реестра

      http://pikabu.ru/story/_3511271
      Из за разгоревшегося спора по поводу необходимости определённых программ и действий решил написать данный текст.

      Довольно таки долго пользовался ccleaner, дефрагментаторами взломанными.
      Так как лицензирование всего и вся не за горами, совершенно отошел от этого софта и понял, что платить 1к-3к рублей за то что уже есть «по умолчанию» в той же «десятке» нет никакого смысла.

      Вместо ccleaner — очистка диска. Очищает все временные файлы, уж поверьте много безопаснее ccleaner’a. Так же очищает установочные файлы windows! Единственная причина запускать ccleaner — чистить историю после просмотра жесткой порнухи. Но на это тоже есть решение — режим анонима, есть в любом броузере! Хотите полной анонимности — ramdrive (бесплатный) с переносом временных файлом на него. После перезагрузки никто (кроме вашего провайдера;) и никогда не узнает где вы были.

      Дефрагментатор запускать? Я уже забыл что это. Виндовс сама лучше знает что, и куда ей положить (старше vista), умеет отключать дефрагментацию на ssd, и проводить скрытую, штатную, по расписанию, исходя из вашего графика загруженности системы. Вам даже делать ничего не нужно. А тем более переплачивать за лишний софт!

      Для дефрагментации старых систем используйте программу MyDefrag. Бесплатная, и лучшая в своём сегменте. Ссылку и описание как пользоваться оставлю внутри.

      Чистка реестра — один из самый переоценённых параметров в софте подобного плана.
      Совершенно бесполезная вещь для рядового пользователя.
      Нужна только в одном случае:
      1) Остались куски от старой программы и новая не устанавливается, ссылаясь на то, что якобы уже установлена — решение regedit! Не нужно бить кувалдой там где можно стукнуть молотком. Программы которые чистят реестр проводят сопоставление ключей реестра с существующими путями, и при их отсутствии просто удаляют весь куст. Это может губительно оказаться на всей системе полностью и привести к ей полной неработоспособности.

      Приведу пример:
      При установке криптографического программного обеспечения создаются пары сертификат-ключ. В тот момент когда вы достанете ключ (usb устройство) ccleaner будет считать ваши ветки реестра недействительными, и удалит их. После этого ничего работать не будет.
      Если вы удаляете программы через «установка и удаление программ» то что остается в реесте — не мусор, а служебная информация с вашими настройками данного по. Удалив это ccleanerom вашей системе не будет легче. Она не будет быстрее работать.

      Если у вас якобы тормозит система из за большого реестра — знайте это миф.
      Файл реестра занимает около 20 мегабайт в памяти системы.
      Для примера — ваш гугл хром занимает от 500 до бесконечности. Вот что нужно чистить и удалять, если система «тормозит»!
      И вообще, если у вас тормозит компьютер, видимо пора его обновлять. Чистки «волшебными» программами сродни пляски с бубном.

      pikabu.ru