Здравствуйте, Аноним, Вы писали:
А>Да с вистой по....ся и я. честно говоря проще просто в настройках уже скомпелированного приложения указать — запускать от имени администратора. програмно это тоже наверняка сделать можно, но как — это хороший вопрос. я даже нашел, как отключить контроль учетных записей, лови если тебе поможет C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f, кстати права админа тоже нужны и перезагрузка тоже нужна.
Нет, это слишком уж радикальное решение — наверняка большинство пользователей не захотят у себя менять настройки системы безопасности. Пока вышел из положения так, как описал в
http://www.rsdn.ru/forum/message/2772279.1.aspxАвтор: KirillSon
Дата: 19.12.07
— добавил манифест с соответствующей записью о запросе дополнительных привилегий.
Спросил по этому поводу одного своего знакомого, он ответил следующее:
> Похоже, что c "поднятыми" (elevated) правами можно только запустить
> новый процесс (или создать COM объект, например, через
> CoCreateInstanceAsAdmin); если процесс уже работает, поднятие его прав
> невозможно.
Странно конечно. Думал, что все-таки можно на работающем. Хотя в примере, найденном по ссылке в
http://www.rsdn.ru/Forum/Message.aspx?mid=2771811&only=1Автор: AndrewVK
Дата: 19.12.07
тоже нашел только запуск нового процесса.
Новый Total Commander, когда не может чего-то сделать из-за недостатка прав, спрашивает — сделать ли это под записью администратора. Если да, то возникает этот Elevation prompt, после чего Total уже работает с правами админа. Неужели он запускает для этого новый процесс? Как-то заумно получается...