MFC - Проблема с использованием CSettingStore для открытия раздела реестра - PullRequest
0 голосов
/ 18 октября 2010

Я хотел бы проверить, установлен ли .NET 3.5 Framework, прочитав значение «Установить» ключа «Software \ Microsoft \ NET Framework Setup \ NDP \ v3.5». Я очень рад узнать, что существует класс Met CSettingStore, который может легко выполнить эту работу, но я обнаружил, что CSettingStore.Open всегда возвращает false.

Код выглядит следующим образом:

bool bOpen = reg.Open(_T("Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5"));
if (bOpen && reg.Read (_T("Install"), dwInstall))
{
    return dwInstall == 1;
}

В этом случае reg.Open всегда возвращает false.

Что-то не так с кодом?

1 Ответ

1 голос
/ 18 октября 2010

In http://msdn.microsoft.com/en-us/library/bb982796.aspx Я прочитал:

<quote>

Значение bAdmin перевернуто На самом деле, если bAdmin верно, ключ равен HKEY_LOCAL_MACHINE и, если он ложенключ HKEY_CURRENT_USER.Вы можете убедиться в этом в afxsettingsstore.cpp:

CSettingsStore::CSettingsStore(BOOL bAdmin, BOOL bReadOnly) :
m_bReadOnly(bReadOnly), m_bAdmin(bAdmin), m_dwUserData(0)
{
m_reg.m_hKey = bAdmin ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
}

</quote>

Так что это похоже на ошибку документации.CSettingsStore reg (TRUE, TRUE); работает лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...