Я не очень понимаю Windows UAC ...
Мне нужно, чтобы моя программа могла обновлять и добавлять файлы в определенный каталог, принадлежащий программе. Этот каталог может быть подкаталогом приложения в Program Files, например, c: \ Program Files \ MyApp \ Data, или он может быть установлен в другом месте.
Я считаю, что, если она находится в папке Program Files, моей программе будет запрещено писать туда, если она не запущена с правами администратора и не имеет повышенных прав доступа. Это правильно?
Мне нужно иметь возможность обновлять файлы в этом каталоге, предпочтительно без вызова повышенных привилегий, а главное приложение все еще «защищено», просто разрешить доступ к этому одному каталогу. Я не могу переместить папку «Данные» в другое место, так как это стороннее приложение, с которым мне нужно взаимодействовать.
Как определяется, что UAC необходим для папок в программных файлах? Является ли Program Files специальным или просто разрешением? Если бы я настроил разрешения для этого подкаталога Data таким образом, чтобы учетная запись пользователя, на котором запущена программа, имела права на запись, позволила бы моему приложению обновлять файлы в этом каталоге без специальных привилегий?
Или есть лучший способ добиться этого, о котором я не думаю? Моя программа обновления должна быть в Java, поэтому получение повышенных привилегий - это боль. Я предполагаю, что мне нужно написать оболочку C ++ для запуска виртуальной машины Java, чтобы я мог дать этой оболочке соответствующий манифест. Не невозможно, но я не хочу этого делать.