Рекомендуемый способ сделать это - создать папку во время установки, выделенную для вашего приложения, под «ProgramData» (то есть CSIDL_COMMON_APPDATA
/ FOLDERID_ProgramData
).
Как вы уже знаете, папка CSIDL_COMMON_APPDATA
доступна только для обычных пользователей.Таким образом, ваша программа установки должна предоставить папке, в которой она создает ACL, который разрешает доступ, который вам необходим.
Это решение, которое соответствует всем критериям, изложенным в пунктах маркированного списка.Вы упоминаете реестр.Нет области реестра, которая была бы общей для всех пользователей и в то же время доступна для записи обычным пользователям.Хотя вы можете использовать списки ACL для предоставления более разрешающих прав доступа к реестру, на самом деле это не готово.Пожалуйста, забудьте, что я даже упомянул эту возможность!