например в разделе
HCEY_CURRENT_USER\SOM_KEY находится n-ое количество(незнаемое заранее) параметров. Как удалить все параметры из моей програмы. З.Ы.Желательно кусочк кода.... |
1. RegOpenKey(...);
2. цикл RegEnumValue(...); 2.1 RegDeleteValue(...); 3. RegCloseKey(...) |
А че за цикл RegEnumValue(...);
И вообще можно поподробнее об этих функциях З.Ы. я просто с++ только учить начал... *:shuffle: [s]Исправлено: Stdnet, 14:43 3-09-2003[/s] |
смотришь в 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); Попробуй - должно работать, если нет - пиши... |
Время: 22:13. |
Время: 22:13.
© OSzone.net 2001-