Есть две проблемы с тем, что вы делаете:
1: RegSetValueEx не принимает путь, только имя-значения. Поэтому сначала вам нужно открыть путь к ключу.
, например
HKEY key;
if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Control\\Power\\Timeouts", 0, 0, &key))
{
if(RegSetValueEx(key, _T("BattSuspendTimeout"), 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD)))
{
RegCloseKey(key);
return FALSE;
}
RegCloseKey(key);
}
2: Эта область реестра требует подписи привилегированного кода для работы на всех устройствах Windows Mobile. Вы можете обойтись без него на большинстве современных мобильных устройств с сенсорным экраном Windows, если пользователь ответит «да» на вопрос неизвестного издателя при первом запуске или установке приложения. Если вы получили сообщение об ошибке «Отказано в доступе» на устройстве, то вам действительно нужно иметь привилегированный код, подписанный для работы устройства.