如何使用RegCopyTree

The*_*abs 1 c++ windows registry winapi

我一直在玩C ++注册表功能,并且试图使RegCopyTree正常工作,但是每次尝试时,都会出现类似以下错误

ERROR_FILE_NOT_FOUND
Run Code Online (Sandbox Code Playgroud)

要么

ERROR_ACCESS_DENIED.
Run Code Online (Sandbox Code Playgroud)

我正在以管理员身份运行该程序,并且所有其他注册表功能都可以正常工作。

这是我正在使用的代码:

HKEY destinationKey;
RegCreateKeyEx(getRootKeyFromCode(rootKeyCode),
        destinationKeyPathNative, 0, NULL, 0, 0, NULL,
        &destinationKey, NULL);
RegCopyTree(INSERT_ROOT_KEY_HERE,
        INSERT_ORIGINAL_KEY_PATH_HERE, destinationKey);
RegCloseKey(destinationKey);
Run Code Online (Sandbox Code Playgroud)

我已删除了错误处理和其他一些不相关的部分。

bun*_*ead 5

目标键句柄应该具有写访问权,以便能够复制到它。RegCreateKeyEx()没有指定访问方式的调用会失败或不授予写访问权限。尝试使用KEY_WRITEKEY_CREATE_SUB_KEY作为第六个参数。