Я ищу хороший способ получить локальную папку данных приложения для определенного пользователя - без необходимости вводить данные для входа в систему для этого пользователя.
SHGetFolderPath() может принимать маркер доступа для любого пользователя, для которого я хочу получить локальную папку appdata, но для получения маркера доступа необходимо указать пароль пользователя. Кроме того, согласно документам, это не t поддерживается в ‹= Windows 2000.
Раздел реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folder содержит значение AppData, которое содержит расположение локальной папки appdata для текущего пользователя... так что технически я мог смонтировать куст HKCU для конкретного пользователя и получить доступ к этому значению; однако Microsoft, похоже, категорически не рекомендует использовать этот ключ, и я слышал, что иногда он также может быть неточным.
По иронии судьбы, в Windows учетная запись администратора может легко получить доступ и изменить все данные в папке appdata любого пользователя, если они просто откроют проводник и перейдут в нужное место... но, похоже, не существует простого способа программно получить расположение папки appdata для конкретного пользователя.
Так есть ли у меня другие варианты? Прямо сейчас доступ к реестру (вздох) кажется лучшим вариантом, но я хотел бы использовать что-то официальное и не обескураженное Microsoft, если это возможно.
Мы ценим любые предложения.