RegEnumValue
От: Аноним  
Дата: 12.04.03 09:13
Оценка:
Я посмотрел в MSDN help по этой функции, но получить имена значений ключа не получается.
Допусим есть ключ HKEY_CURRENT_USER\Software\Test
Как получить имена всех значений (строковых например) из этого ключа?
HELP!
Re: RegEnumValue
От: CasperTKV Украина  
Дата: 12.04.03 13:16
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Я посмотрел в MSDN help по этой функции, но получить имена значений ключа не получается.

А>Допусим есть ключ HKEY_CURRENT_USER\Software\Test
А>Как получить имена всех значений (строковых например) из этого ключа?
А> HELP!

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/smtpevt/html/_smtpevt_catreader_sinkutil_cpp.asp
... << RSDN@Home 1.0 beta 6a >>
Re: RegEnumValue
От: Willi Беларусь  
Дата: 12.04.03 13:26
Оценка:
Здравствуйте, Аноним, Вы писали:

Что значит не получается?
Код покажи.

Вот так все получается:
#include <windows.h>
#include <tchar.h>
#include <stdio.h>

int _tmain(int argc, TCHAR* argv[])
{
    LONG lResult;
    HKEY hKey;
    lResult = ::RegOpenKey(HKEY_CURRENT_USER, 
        _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"), &hKey);

    if (lResult != ERROR_SUCCESS)
    {
        _tprintf(_T("Error: %d\n"), lResult);
        return -1;
    }

    TCHAR pszValueName[255];
    DWORD dwLen;

    lResult = ERROR_SUCCESS;
    for (DWORD dwIndex = 0; lResult == ERROR_SUCCESS; ++dwIndex)
    {
        dwLen = sizeof(pszValueName) / sizeof(TCHAR);
        lResult = ::RegEnumValue(hKey, dwIndex, pszValueName, &dwLen, 
            NULL, NULL, NULL, NULL);

        if (lResult == ERROR_SUCCESS)
            _tprintf(_T("%s\n"), pszValueName);
    }

    if (lResult != ERROR_NO_MORE_ITEMS)
    {
        _tprintf(_T("Error: %d\n"), lResult);
        return -1;
    }
    
    return 0;
}
__________________________________
Василий Черневич (aka Willi)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.