RegopenKeyEx в Висте
От: mityadoma  
Дата: 13.06.07 13:18
Оценка:
Друзья, подскажите, в чем проблема! В общем, я в Висте работаю с реестром. Запись в реестр рпоисходит на УРА, без проблем. Когда же начинаю читать записанные данные — такая лажа получается!!!! Вот код чтения из реестра строки:

  HKEY hKey;
    char sz[MAX_PATH];
    char szPath[MAX_PATH];
    DWORD dwSize;
    LONG lRet;
    if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T(key_way), 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
        return "";
    sz[sizeof(sz)-1] = '\0';
    dwSize = MAX_PATH;
    lRet = RegQueryValueEx(hKey, _T(item_name), NULL, NULL, (LPBYTE)sz, &dwSize);
    if (lRet != ERROR_SUCCESS || sz[sizeof(sz)-1] != '\0')
        return "";
    MessageBox(NULL,sz,"ilock - sz2",MB_OK | MB_SYSTEMMODAL);
    ExpandEnvironmentStrings(sz, szPath, sizeof(szPath));
    RegCloseKey(hKey);
    return szPath;


В Висте всегд возвращается одна и таже строка, в то время как значение ключа изменяется периодически... Узнал, что проблема может быть в том, что в Висте все ключи в Юникоде. Попробовал использовать юникод версию — нифига, вообще не может получить значение ключа. Что делать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.