Как писать в каталог «Мои документы» пользователя с помощью установщика, когда пользователь использовал «Запуск от имени администратора»

У меня есть программа, которой при установке необходимо создавать файлы в каталоге «Мой документ». Это строгое фиксированное требование, его нельзя изменить. Проблема в том, что если пользователь выполняет «Запуск от имени администратора» в файле установки, константа innosetups {userdocs} указывает на каталог документов администратора, а не на исходного пользователя, вошедшего в систему.

Итак, погуглив и найдя это:

Установите файлы в папку «Мои документы» исходного пользователя с помощью Inno Setup в Windows Vista/7

Однако ответ неверен, потому что innosetup даже утверждает, что

Если пользователь запускает программу установки, щелкнув правой кнопкой мыши ее EXE-файл и выбрав "Запуск от имени администратора", то этого флага, к сожалению, не будет эффекта, потому что программа установки не имеет возможности запустить какой-либо код с оригинальные учетные данные пользователя. То же самое верно, если программа установки запускается из уже запущенный процесс. Обратите внимание, однако, что это не Inno Ограничение, связанное с установкой; Установщики на основе установщика Windows не могут в таких случаях вернитесь к исходным учетным данным пользователя.

Думаю, я могу порекомендовать пользователю не использовать функцию «Запуск от имени администратора», но я не знаю, как помешать ему войти в систему с повышенными правами.

Я думал о том, чтобы программа сама устанавливала каталог My Documents\Program name при первом запуске (после установки). Будет ли работать этот обходной путь? Ему придется копировать файлы из своего каталога программных файлов как потенциально ограниченного пользователя. Это возможно или у меня будут проблемы с привилегиями?

7
задан Community 23 May 2017 в 12:17
поделиться