Я впервые программно играю с реестром, и он не очень хорошо работает (но, по крайней мере, я не уничтожил свой компьютер). В частности, я продолжаю получать ошибку 5 (доступ запрещен) от RegCreateKeyEx и RegSetValueEx. Самое странное для меня то, что когда HKEY_CURRENT_USER\Software\dir1\Sub Directory
уже существует, RegCreateKeyEx завершается с ошибкой 5, но когда он еще не существует, он успешно создает его; а затем терпит неудачу в RegSetValueEx.
Я делаю что-то не так в этом коде?
BOOL MyDialog::SaveLocationsToRegistry()
{
HKEY hkey;
DWORD dwDisposition;
DWORD dwType, dwSize;
LONG result = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\dir1\\Sub Directory"),
0, NULL, 0, 0, NULL, &hkey, &dwDisposition);
if(result == ERROR_SUCCESS)
{
LPCTSTR szLastFolder = "C:\\Documents and Settings\\user\\My Documents\\Copy of item\0";
dwType = REG_SZ;
dwSize = strlen(szLastFolder)+1;
LONG setResult = RegSetValueEx(hkey, TEXT("LastFolder"), 0, dwType,
(PBYTE)&szLastFolder, dwSize);
RegCloseKey(hkey);
return setResult == ERROR_SUCCESS;
}
else
{
return false;
}
}
Примечание. Абсолютный путь присутствует только временно. Шаги малыша ;-)