• XSS.stack #1 – первый литературный журнал от юзеров форума

C++ Отказано в доступе при написании в файл

sect adept

(L3) cache
Пользователь
Регистрация
19.02.2022
Сообщения
280
Решения
3
Реакции
73
Приветствую. Столкнулся с проблемой, что с помощью WinApi пытаюсь открыть файл на чтение и запись, чтобы прочитать эти данные и записать в файл. Проблема заключается в том, что если директория находится в Program Files, то GetLastError() дает значение 5 при попытке открыть файл и записать, собственно, отказано в доступе. Запускаюсь от имени админа, даже от системы пробовал, но все четно. Как можно фиксануть это через код или никак не пофиксить эту проблему через код, а только вручную назначать файлам привеилегии?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Приветствую. Столкнулся с проблемой, что с помощью WinApi пытаюсь открыть файл на чтение и запись, чтобы прочитать эти данные и записать в файл. Проблема заключается в том, что если директория находится в Program Files, то GetLastError() дает значение 5 при попытке открыть файл и записать, собственно, отказано в доступе. Запускаюсь от имени админа, даже от системы пробовал, но все четно. Как можно фиксануть это через код или никак не пофиксить эту проблему через код, а только вручную назначать файлам привеилегии?
Ошибка или из-за нехватки прав или из-за того, что файл используется другим процессом.
Других вариантов не вижу.
Скорее всего нужно делать как-то так
C++:
ShellExecute( NULL,
    "runas", 
    "c:\\windows\\notepad.exe", 
    " c:\\temp\\report.txt",     
    NULL,                        // default dir
    SW_SHOWNORMAL 
);

То есть запрашивать админские права и в отдельном процессе заниматься удалением
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх