RegOpenKeyEx для ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ \ Microsoft \ Windows NT \ CurrentVersion \ SeCEdit \ Reg Values ​​возвращает код ошибки 2

Я использую интерфейс IGroupPolicyObject, чтобы открыть раздел реестра. Я загрузил реестр с помощью GPO_SECTION_MACHINE, но когда я открываю раздел реестра «SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ SeCEdit \ Reg Values» с помощью RegOpenKeyEx, возвращается код ошибки 2. Я запускаю свой exe (встроенный в Visual Studio 2008, c ++) в качестве администратора. Я хотел бы знать, как открыть вышеупомянутый ключ? Любая форма помощи будет принята с благодарностью.

Ниже приведен код, который я использую для открытия ключа.

GUID RegistryId = REGISTRY_EXTENSION_GUID;
GUID ThisAdminToolGuid =
{
0x0F6B957E,
0x509E,
0x11D1,
{0xA7, 0xCC, 0x00, 0x00, 0xF8, 0x75, 0x71, 0xE3}
};

hres = CoCreateInstance(
CLSID_GroupPolicyObject,
NULL,
CLSCTX_INPROC_SERVER,
IID_IGroupPolicyObject,
(LPVOID*)&pIGroupPolicyObject
);
if (S_OK != hres || NULL == pIGroupPolicyObject)
{
_tprintf(_T("\n hres != S_OK"));
return FALSE;
}

hres = pIGroupPolicyObject->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY);
if (FAILED(hres))
{

_tprintf(_T("\n hres != S_OK"));
return FALSE;
}

hres = pIGroupPolicyObject->GetRegistryKey(GPO_SECTION_MACHINE, &hGPOSectionUserKey);
if (FAILED(hres) || NULL == hGPOSectionUserKey)
{

_tprintf(_T("\n hres != S_OK"));
return FALSE;
}
lRetVal = RegOpenKeyEx(hGPOSectionUserKey, _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SeCEdit\\Reg Values\\MACHINE/System/CurrentControlSet/Services/LanManServer/Parameters/NullSessionShares"), 0, KEY_READ, &hSettingUserKey);

0

Решение

Призыв к RegOpenKeyEx возвращает 2, что ERROR_FILE_NOT_FOUND, Это означает, что путь, который вы указываете, не существует. Что правильно. Вы поставили: "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SeCEdit\\Reg Values\\MACHINE/System/CurrentControlSet/Services/LanManServer/Parameters/NullSessionShares",

Наверняка этот путь не существует. Вместо этого вы должны передать: "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SeCEdit\\Reg Values",

0

Другие решения


По вопросам рекламы [email protected]