Я использую код ниже, чтобы получить папку appdata.Обычно это работает, но если я запускаю тот же процесс через службу, аналогичную this , я получаю ошибку 0x80070005
, что означает Access Denied
.
HRESULT result;
if ((result = SHGetKnownFolderPath(
FOLDERID_RoamingAppData,
NULL,
NULL,
&appdate)) != S_OK)
{
std::cout << result << std::endl
return false;
}
Функцияэто создает процесс
if (!CreateProcessAsUser(
token,
executablePath,
executableName,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
0,
&startupInfo,
&processInformation))
{
SHOW_SERVICE_ERROR;
}
Я не нашел ничего связанного с этим в Интернете.Кто-нибудь может помочь?