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

Ответить
Аватара пользователя
Artya

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

Сообщение Artya »

например в разделе

HCEY_CURRENT_USER\SOM_KEY

находится n-ое количество(незнаемое заранее) параметров. Как удалить все параметры из моей програмы.

З.Ы.Желательно кусочк кода....
Аватара пользователя
Artya

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

Сообщение Artya »

1. RegOpenKey(...);

2. цикл RegEnumValue(...);

 2.1 RegDeleteValue(...);

3. RegCloseKey(...)
Аватара пользователя
unknown bug

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

Сообщение unknown bug »

А че за цикл RegEnumValue(...);

И вообще можно поподробнее об этих функциях

З.Ы. я просто с++ только учить начал... *Изображение



[s]Исправлено: Stdnet, 14:43 3-09-2003[/s]
Аватара пользователя
Artya

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

Сообщение Artya »

смотришь в MSDN либо на msdn.microsoft.ru...

пример кода:



HKEY key;

if (RegOpenKeyEx(

HKEY_LOCAL_MACHINE,

"SOFTWARE\\SOM_KEY",

0,

KEY_ALL_ACCESS,

&key) != ERROR_SUCCESS)

{

//ошибка - нет такого ключа либо не хватает прав...

}

#define MAX_LEN_VALUE_NAME *16383*sizeof(TCHAR) /*max длина имени в 2000 и XP, в 9X - 255 */



DWORD namelen = MAX_LEN_VALUE_NAME;

char* valuename = (char*)_alloca(namelen); /* либо = new char[namelen]; только потом не забудь delete valuename;

в случае _alloca delete не надо, так как память выделяется в стеке */



DWORD err = RegEnumValue(

key, * * * * * * * //наш ключ

0, * * * * * * * * * //индекс всегда 0, так как удаляем ключи

valuename, * *//буфер для ValueName

&sizename, * *//размер буфера

NULL, * * * * * * *//зарезервировано (всегда 0)

NULL, * * * * * * *//тип данных нам не нужен

NULL, * * * * * * *//данные тоже не нужны

NULL); * * * * * *//длина данных тоже не нужна



while (err == ERROR_SUCCESS || err != ERROR_NO_MORE_ITEMS)

{

RegDeleteValue(key,valuename);

sizename = MAX_LEN_VALUE_NAME;

err = RegEnumValue(key,0,valuename,&sizename,NULL,NULL,NULL,NULL);

};

RegCloseKey(key);



Попробуй - должно работать, если нет - пиши...
Ответить

Вернуться в «Программирование и базы данных»