программно получить специальное разрешение на запись в папку с помощью контроля доступа пользователей в Windows 7 и Vista - PullRequest
0 голосов
/ 15 октября 2010

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

Сценарий состоит в том, что пользователь с правами администратора через диалог конфигурации приложения должен иметь возможность установить приложение взапускаться автоматически для всех обычных пользователей при входе в систему.

Я получаю папку запуска, используя

SHGetSpecialFolderPath(NULL, startFolderPath, CSIDL_COMMON_STARTUP, FALSE)

, но у меня нет прав на запись в эту папку, даже когда зарегистрированный пользовательявляется частью группы администраторов.

Полагаю, мне нужно вызвать некоторую функцию API, связанную с контролем учетных записей (UAC), чтобы запросить разрешение у зарегистрированного пользователя для повышения текущей привилегии.

Этодолжно работать и на Windows XP

1 Ответ

1 голос
/ 15 октября 2010

Когда вы говорите, что у вас нет прав на запись в папку, было ли приложение или инструмент, который вы использовали для записи, работать с повышенными правами? То есть работает от имени администратора? Это не то же самое, что запуск учетной записи администратора. Если нет, щелкните правой кнопкой мыши исполняемый файл и выберите Запуск от имени администратора. Это повысит уровень приложения и, возможно, позволит ему выполнить задачу настройки.

Это не относится к контролю доступа пользователя или коду доступа к коду. Это UAC, который защищает HKLM, программные файлы и другие настройки для всех пользователей для каждого компьютера.

...