Доброго времени суток. Суть вопроса такова:
В программе с помощью функции WinAPI открываю файл
HRESULT ReadFile(LPCWSTR name)
{
HRESULT hr = S_OK;
DWORD Error = 0;
HANDLE OResult= 0;
// Open file
OResult = CreateFile(name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (OResult == INVALID_HANDLE_VALUE)
{
Error = GetLastError();
}
return hr;
}
И все вроде-бы хорошо - при запуске программы из проводника файл открывается, читается, но когда моя программа запускается через автозапуск (прописана в "Software\\Microsoft\\Windows\\CurrentVersion\\Run") то GetLastError() возвращает код ошибки 5 (ERROR_ACCESS_DENIED).
Сейчас изучаю Access Control Model но пока безрезультатно.
Может кто сталкивался или знает подскажите, пожалуйста, в чем причина, куда копать?
ps: файл для открытия создан той же программой до перезагрузки, лежит в папке с экзешником. Другим процессом не открыт (вроде бы.. хотя как проверить?).
@Владимир Мартьянов: Если файла нет, возвращает ту-же ошибку.
Решено: отключением UAC в манифесте проекта. Иначе запуск программы из ветки HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run происходит с ограничеными правами.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники