Поддержка операций с реестром в MFC. Профиль пользователя приложения

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

   
Для задания местонахождения параметров профиля пользователя AppWizard добавляет следующую строку в
тело функции InitInstance() объекта приложения:

  SetRegistryKey(_T("Local AppWizard-Generated Applications"));

   
CWinApp::SetRegistryKey() вызывается с параметром, задающим имя раздела, где будут храниться параметры
Вашего приложения. Это подраздел помещается в раздел HKEY_CURRENT_USER\Software. Обязательно
замените задаваемое по умолчанию имя (Local АрpWizard-Generated Applications) именем раздела, куда Вы
поместите параметры профиля пользователя всех своих приложений. Как правило, для этих целей выбирают название
компании, разрабатывающей приложение.

   
Замечание.
Если Вы удалите из Вашей функции InitInstance() вызов SetRegistryKey(), каркас создаст в каталоге
Windows INI-файл и будет использовать его для хранения параметров конфигурации, общих для всех
пользователей. INI-файлы - наследие 16-разрядных версий Windows, они не должны применяться в
32-разрядных приложениях.

   
Зададим раздел реестра для хранения профиля пользователя приложения МуАрр.

  • Задание имени раздела для хранения профиля пользователя.
  • Откройте проект МуАрр.
  • Во вкладке ClassView раскройте значок класса СМуАррАрр.
  • Дважды щелкните функцию-член InitInstance(), чтобы начать редактировать ее код.
  • Приблизительно на 20-й строке тела функции Вы найдете следующий текст:
        SetRegistryKey(_T("Local AppWizard-Generated Applications"));
    


    Рис.1. Найденный фрагмент

  • Отредактируйте его так:
        SetRegistryKey (_T ("MyCompany"));
    
  • Соберите и запустите приложение МуАрр.
  • Текст измененного приложения можно взять здесь (145,1 Кб).

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

  • Нахождение раздела с профилем пользователя.
  • Убедитесь, что Вы хотя бы раз выполнили сборку и запуск приложения МуАрр после определения
    раздела для профиля пользователя.
  • Закройте приложение МуАрр. В меню Пуск выберите Выполнить.
  • В поле Открыть введите RegEdit. Щелкните ОК.
  • Найдите ветку HKEY_CURRENT_USER.
  • Двойным щелчком разверните раздел Software и убедитесь, что программа МуАрр создала
    следующий раздел:

      HKEY_CURRENT_USER\Software\MyCompany\MyApp\Settings
    


    Рис.2. Созданный раздел

   
Примечание. Функция SetRegistryKey() создает подраздел с именем приложения,
который будет служить корнем для параметров приложения.

   
Для записи профиля пользователя в MFC-приложениях применяются функции управления профилем. Все они
являются функциями-членами класса CWinApp:

  • WriteProfileString();
  • GetProfileString();
  • WriteProfileInt();
  • GetProfileInt().

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

   
WriteProfileString() создает параметр типа REG_SZ, a WriteProfileInt() - типа
REG_DWORD. Обе эти функции возвращают булево значение, указывающее на успех или неудачу операции
записи. На месте третьего аргумента в обе функции передается значение нового параметра.

   
Например, строка

    WriteProfileString("Settings",   "User Name",   "Julian");

создаст параметр HKEY_CURRENT_USER\Software\MyCompany\MyApp\Settings\User Name, который получит
значение "Julian".

   
Функции GetProfileString() и GetProfileInt() возвращают значение данного параметра реестра. Обе они
принимают в качестве третьего аргумента значение по умолчанию, которое будет возвращено, если запрашиваемый параметр не существует.

   
На следующем шаге мы рассмотрим управление профилем пользователя.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий