Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ RegOpenKeyEx for SOFTWARE\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg值返回错误代码2_C++_Windows_Registry_Gpo - Fatal编程技术网

C++ RegOpenKeyEx for SOFTWARE\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg值返回错误代码2

C++ RegOpenKeyEx for SOFTWARE\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg值返回错误代码2,c++,windows,registry,gpo,C++,Windows,Registry,Gpo,我正在使用IGroupPolicyObject接口打开注册表项。我使用GPO\U SECTION\U计算机加载了注册表,但是,当我使用RegOpenKeyEx打开注册表项“SOFTWARE\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg Values”时,返回一个错误代码2。我以管理员身份运行我的exe(内置于Visual Studio 2008,c++)。我想知道如何打开上述钥匙?任何形式的帮助将不胜感激 下面是我用来打开钥匙的代码 GUID R

我正在使用IGroupPolicyObject接口打开注册表项。我使用GPO\U SECTION\U计算机加载了注册表,但是,当我使用RegOpenKeyEx打开注册表项“SOFTWARE\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg Values”时,返回一个错误代码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);

调用
RegOpenKeyEx
返回2,它是
ERROR\u FILE\u NOT\u FOUND
。这意味着您提供的路径不存在。这是正确的。您提供了:
“HKEY\U LOCAL\U MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SeCEdit\\Reg Values\\MACHINE/System/CurrentControlSet/Services/LanManServer/Parameters/NullSessionShares”


请确保该路径不存在。您应该按照您的建议传递:
“SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SeCEdit\\Reg Values”

,如果我只使用后面提到的路径,RegOpenKeyEx仍然返回错误\u FILE\u NOT \u FOUND.Well,它告诉您该文件不存在。也许注册表重定向程序正在烧掉你。我正在32位虚拟机上运行我的应用程序,所以我不认为我是注册表重定向的受害者。错误\u文件\u找不到\u是非常明确的