0
RegCopyTreeを使用してすべてのサブキーと値を別のサブキーにコピーしようとしていますが、エラーコード5が表示されます。つまり、ACCESS DENIEDです。CでRegCopyTreeを使用してアクセスを拒否する
私はKEY_CREATE_SUB_KEY
へのアクセスを依頼しましたが、まだ失敗しています。私はまた、管理者としてアプリを走らせましたが、それはまったく機能しませんでした。
私を助けることができますか?ここで
は私のコードです:
は右REGSAM変数にKEY_ALL_ACCESS
アクセスを使用していた。ここでは
int wmain()
{
//RegOpenKeyEx
HKEY hKey = HKEY_CURRENT_USER;
LPCWSTR subKeyOpen = L"WinSide";
DWORD options = 0;
REGSAM samDesired = KEY_READ;
HKEY openedKey;
//Opening the HKCU\WinSide subkey
LONG openKey = RegOpenKeyEx(hKey, subKeyOpen, options,
samDesired, &openedKey);
LPCWSTR subKeyDest = L"WinSi";
REGSAM destSamDesired = KEY_CREATE_SUB_KEY;
HKEY destOpenedKey;
//Opening the HKCU\WinSi subkey - this is the destination subkey
LONG destOpenKey = RegOpenKeyEx(hKey, subKeyDest, options,
destSamDesired, &destOpenedKey);
if (openKey != ERROR_SUCCESS)
{
wprintf(L"Error opening the key. Code: %li\n", openKey);
}
else
{
wprintf(L"Key opened!\n");
if (destOpenKey != ERROR_SUCCESS)
wprintf(L"Error code: %li\n", destOpenKey);
else
{
//RegCopyTree
HKEY keyDest;
LONG copyKey = RegCopyTree(openedKey, NULL, destOpenedKey);
if (copyKey != ERROR_SUCCESS)
wprintf(L"Error copying the key. Code: %li\n", copyKey);
else
{
wprintf(L"Key copied!\n");
}
}
RegCloseKey(openedKey);
RegCloseKey(destOpenedKey);
}
return 0;
}
私は両方の開口部で 'KEY_WRITE'を試みましたが、それでも同じエラーです。 –
答えを追加しました。 –