Где я могу создать каталог без прав / привилегий администратора?

Я создаю DLL, которая идет со сторонней программой. Независимо от того, имеет ли сторонняя программа права администратора в Windows, я не могу контролировать.

DLL должна создать каталог, но кажется, что CreateDirectory не будет работать, потому что у него нет прав администратора.

Расширение UAC не вариант, потому что я изменяю только DLL, а не стороннюю программу. Я не могу заставить пользователя щелкнуть правой кнопкой мыши на сторонней программе и «Запуск от имени администратора».

(Visual C ++ 2010)

РЕДАКТИРОВАТЬ

Я пытаюсь написать C:\ProgramData\, Я получаю этот путь, используя SHGetFolderPath() а также CSIDL_COMMON_APPDATA,

3

Решение

использование CSIDL_APPDATA как корень папка для любых пользовательских каталогов / файлов, в противном случае используйте CSIDL_COMMON_APPDATA вместо. В любом случае, создайте свою собственную подпапку под выбранным корень для вашего приложения / DLL, как корень сама папка защищена от записи в. Как правило, установщик должен создать вашу подпапку с соответствующими правами, а затем приложение / DLL может получить к ней доступ по мере необходимости.

5

Другие решения

Прочитайте TEMP переменная окружения и использовать результат для создания временных файлов и / или каталогов. использование APPDATA для постоянных.

Обратите внимание, что по крайней мере APPDATA зависит от пользователя.

1