Работа с Реестром

Октябрь 21, 2020
Minion

На данный момент идеология хранения информации о программе изменилась. Ранее в версиях Windows 3.x данные о настройке программ хранились в файлах INI, в версиях Windows 9X используется системный реестр. Работа с системным реестром может осуществляться, как из программ, так и с помощью специальной программы REGEDIT. Эта программа позволяет редактировать реестр вручную. Боже упаси Вас редактировать его, результат может быть похож на взрыв бомбы, как в плохом смысле, так и в хорошем. Если Вы ранее не работали с реестром не отступайте от моих шагов ни на шаг, извините за каламбур. Запустить REGEDIT можно через Start(пуск), далее Run(выполнить) набрать REGEDIT и нажать OK.

Если Все это проделывать не хотите воспользуйтесь REG файлом из проекта. Просто щелкните два раза по нему в проводнике. И так данные Вашей программы должны храниться в разделе реестра HKEY_CURRENT_USER\Software\. Дальше должно идти имя вашей компании. Вот его и нет. Поэтому мы его должны создать. Правую кнопку мышки на Software Новый и ключ. Как на рисунке ниже. Имя ключа дайте Step.

Дальше вы должны создать раздел вашей программы, а также дополнительные разделы и ключи.

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

SetRegistryKey("Step");
WriteProfileString("Step39", "TestApp", "Hi");

Или вот таким Reg файлом.

REGEDIT4
[HKEY_CURRENT_USER\SOFTWARE\Step]
[HKEY_CURRENT_USER\SOFTWARE\Step\Step34]
[HKEY_CURRENT_USER\SOFTWARE\Step\Step34\Step39]
[HKEY_CURRENT_USER\SOFTWARE\Step\Step34\Step39]
"TestApp"="Hi"

При чем здесь 34? Имя exe такое, тянется еще с 34 шага. Если шаг делали с нуля, то здесь должно быть имя вашего exe файла.

Создаем код

Изменение функции InitInstance.

BOOL CTestApp::InitInstance
{
SetRegistryKey(("Step")); // Установить указатель на ключ
AfxMessageBox(GetProfileString("Step39", "TestApp", "None :-(")); // Получить строку
CTestDlg dlg; // Создать объект диалогового окна
m_pMainWnd = &dlg; // главное окно программы это диалоговое окно
dlg.SetEditStr("Hello DDX"); // установить данные
dlg.DoModal;
TRACE(dlg.GetEditStr); // получить данные и вывести в окно отладки
return FALSE;
}

Описание

SetRegistryKey устанавливает указатель по адресу HKEY_CURRENT_USER\Software\ с этого момента все обращения будут проходить по отношению этого адреса в реестре. Имя компании у нас Step. Дальше будет браться раздел, имя программы, по названию exe файла в нашем случае. GetProfileString получает данные из раздела Step39 и по ключу TestApp, вернется строка типа CString. Ответсвенность за то, что данный параметр строка, и что он существует. Это на вашей совести.

Видео на тему
Как заставить компьютер работать быстрее: Работа с реестром!
Как заставить компьютер работать быстрее: Работа с реестром!
Работа с Реестром Планов графиков
Работа с Реестром Планов графиков
10 Работа с реестром часть 1)
10 Работа с реестром часть 1)
Рассказать о статье

Расскажите о нас