Работа с системным реестром Windows на C++. В сегодняшней статейке, я расскажу вам, как вы можете читать, писать ключи в реестр, создавать разделы в реестре и т.д. Функции RegOpenKeyEx, RegQueryValueEx, RegCreateKeyEx, RegCloseKey. В примере ниже я покажу как узнать куда сохраняет настройки программа Reget. А именно, как изменить станартную папку закачки.
#include <stdio.h>
#include <windows.h>
int main(int argc, char* argv[])
{
//-------------------------------
HKEY rKey;
unsigned char Reget[512];
DWORD RegetPath = sizeof(Reget);
RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\ReGet Software\\ReGetDx\\History\\Download\\SaveTo", 0, KEY_QUERY_VALUE, &rKey);
RegQueryValueEx(rKey, "A", NULL, NULL, Reget, &RegetPath);
RegCloseKey(rKey);
//------------------------------
printf("%s",Reget);
getchar();
return 0;
}
В нашем примере мы использовали функции RegOpenKeyEx, RegQueryValueEx, RegCreateKeyEx, RegCloseKey. Сегодня мы поговорим только о них.
Функция RegOpenKeyEx открывает указанный ключ.
LONG RegOpenKeyEx(
HKEY hKey, // дескриптор указанного ключа
LPCTSTR lpSubKey, // адрес имени открываемого подключа
DWORD ulOptions, // зарезервировано
REGSAM samDesired, // маска доступа безопасности
PHKEY phkResult // адрес дескриптора открытого ключа
);
Функция RegQueryValueEx возвращает тип и данние указанного значения по имени, ассоциирующимся с открытым ключом реестра.
LONG RegQueryValueEx(
HKEY hKey, // дескриптор ключа
LPTSTR lpValueName, // адерс имени значения
LPDWORD lpReserved, // зарезервировано
LPDWORD lpType, // адрес переменной для типа значения
LPBYTE lpData, // адрес буфера для данных
LPDWORD lpcbData // адрес переменной для размер буфера данных
);
Функция RegCreateKeyEx создает указанный ключ. Если ключ уже существует в реестре, то функция открывает его. Эта функция оставлена для совместимости с Windows версии 3.1. Приложения для Win32 должны использовать функцию RegCreateKeyEx.
LONG RegCreateKeyEx(
HKEY hKey, // дескриптор открытого ключа
LPCTSTR lpSubKey, // адрес имени подключа
DWORD Reserved, // зарезервировано
LPTSTR lpClass, // адрес строки класса
DWORD dwOptions, // флаг особых опций
REGSAM samDesired, // желаемый доступ безопасности
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // адрес структуры ключа безопасности
PHKEY phkResult, // адрес буфера для открытого ключа
LPDWORD lpdwDisposition // адрес буфера характерного значения
);
Функция RegCloseKey освобождает дескриптор указанного ключа.
LONG RegCloseKey(
HKEY hKey // дескриптор ключа на закрытие
);
Написать комментарий