У меня был похожий запрос здесь (переполнение стека).
В конце я понял, что мне нужно поместить свое приложение в Program Files во время установки (требующий UAC / повышение прав) и затем сохранить данные моего приложения в папке данных приложения пользователя. Мне пришлось изменить способ, которым моя программа генерировала параметры конфигурации «по умолчанию», а также место, где я сохранял этот материал, но в итоге это стоило усилий - в итоге мы получили что-то, что отлично устанавливается и работает на XP, Vista и Windows 7 .
Единственный удар UAC, который мы получаем, происходит во время установки, что имеет смысл для меня (и вы получаете аналогичный удар во время установки на Mac тоже). У нас не было данных, которые были бы общими для всех пользователей в данном конкретном случае, но я бы посмотрел на специальную папку Program Data, если бы это было так.
Программное обеспечение установщика, которое мы используем (Setup Factory), сделало это довольно просто (мы просто написали небольшой кусочек кода для определения XP по сравнению с Vista / Win7 и соответственно выбрали нужную специальную папку). Это было бы легко сделать в Inno Setup, исходя из того ограниченного опыта, который у меня есть.