Может ли процесс поднять себя после запуска? - PullRequest
5 голосов
/ 17 января 2010

Можно ли процессу получить права администратора после его запуска?Если да, то как?

Примеры должны быть на C или C ++.

Редактировать - Примеры также должны использовать неуправляемый код.

1 Ответ

3 голосов
/ 17 января 2010

Вы не можете повысить разрешения процесса во время его выполнения. Обычный способ обойти это - порождать новый процесс с повышенными правами доступа, когда это необходимо. Затем этот процесс выполняет работу, которая требует более высоких привилегий, а затем завершает свою работу, возвращая управление обратно основному процессу. Вы должны быть в состоянии сделать его достаточно плавным, установив родительское окно новых процессов в главное окно процесса.

Другой вариант - перезапустить основную программу с необходимыми разрешениями.

Есть статья о UAC в Vista с примерами на С ++ , которая выглядит довольно подробно.

...