none
Запуск кода с правами администратора RRS feed

Ответы

  • Здравствуйте.

    Добавьте в проект файл App.manifest (ПКМ по проекту - добавить - существующий элемент) и в блоке <trustInfo> </trustInfo> раскомментируйте следующую строчку:

    <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

    DreamSpark Premium User


    • Изменено asdfxcbneftyherwe 28 августа 2012 г. 6:28
    • Предложено в качестве ответа LXGDARKEditor 28 августа 2012 г. 7:34
    • Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:02
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:02
    28 августа 2012 г. 6:22
  • Ещё бы сюда добавить информацию о запуске куска кода с правами кого-нибудь, а не всего процесса.
    Иногда может пригодиться. Подглядел что такое бывает в некоторых программах.
    Понятия не имею как они это делают (запускают новый процесс с правами, тот же перезапускают и тд.),
    но всё же.
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:03
    28 августа 2012 г. 13:38
  • Привет.

    Например так можно сделать вызов метода с требованием прав админа - Admin rights for a single method

    Посмотрите класс - PrincipalPermissionAttribute


    Для связи [mail]

    • Предложено в качестве ответа Brash_O 29 августа 2012 г. 13:31
    • Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:02
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:02
    28 августа 2012 г. 19:40
  • а у меня работает с манифестом, давно так сам делал.
    И отладка работает, нужно только визуал студию тоже от админа запускать.Если нужно, можно почти совсем пустой проект с этим делом сделать и выложить куда-нибудь.
    Было бы куда (без кучи всякой ерундовой рекламы)
    • Изменено INFEL8 29 августа 2012 г. 10:00
    • Предложено в качестве ответа Алексей ЛосевEditor 29 августа 2012 г. 10:08
    • Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:01
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:03
    29 августа 2012 г. 10:00

Все ответы

  • Здравствуйте.

    Добавьте в проект файл App.manifest (ПКМ по проекту - добавить - существующий элемент) и в блоке <trustInfo> </trustInfo> раскомментируйте следующую строчку:

    <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

    DreamSpark Premium User


    • Изменено asdfxcbneftyherwe 28 августа 2012 г. 6:28
    • Предложено в качестве ответа LXGDARKEditor 28 августа 2012 г. 7:34
    • Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:02
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:02
    28 августа 2012 г. 6:22
  • Ещё бы сюда добавить информацию о запуске куска кода с правами кого-нибудь, а не всего процесса.
    Иногда может пригодиться. Подглядел что такое бывает в некоторых программах.
    Понятия не имею как они это делают (запускают новый процесс с правами, тот же перезапускают и тд.),
    но всё же.
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:03
    28 августа 2012 г. 13:38
  • Привет.

    Например так можно сделать вызов метода с требованием прав админа - Admin rights for a single method

    Посмотрите класс - PrincipalPermissionAttribute


    Для связи [mail]

    • Предложено в качестве ответа Brash_O 29 августа 2012 г. 13:31
    • Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:02
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:02
    28 августа 2012 г. 19:40
  • Добрый день.

    Правка манифеста ни к чему ни привела, хотя об этом способе также упоминается в большом количестве источников. Первоначально я шел именно этим путем.

    29 августа 2012 г. 7:28
  • Пытался делать как написано здесь На первый взгляд все, вроде бы, хорошо, при запуске появляется окно UAC, уже начал радоваться, НО оказалось: перестает работать отладка, другими словами, у меня на форме есть кнопарь, по клику должен выполнятся определенный код, так вот, это клик отладка уже не не видит: ставишь точку останова, но она не срабатывает, хотя форма открывается, кнопка отрабатывает. Похоже, это происходит по причине убивания процесса, который запускался в самом начале (см. ссылку выше) (т.е. того, который мониторил отладчик), то, что запускается потом - это уже новый процесс, который отладчик не контролирует.

    29 августа 2012 г. 7:47
  • Еще вот здесь описан хороший способ. Почему то, после его применения, при компиляции проекта высыпается куча ошибок, но на exe-шнике в результате появляется щит, при запуске дает окно UAC, но проект больше не компилится...

    Также не ясен смысл вот этой строки: "$(DevEnvDir)..\..\SDK\v2.0\bin\mt.exe" -manifest "$(ProjectDir)$(TargetName).exe.manifest"  –outputresource:"$(TargetDir)$(TargetFileName)";#1

    29 августа 2012 г. 8:00
  • Очень благодарен всем за участие и помощь.

    Может быть, еще есть идеи ?

    29 августа 2012 г. 8:03
  • а у меня работает с манифестом, давно так сам делал.
    И отладка работает, нужно только визуал студию тоже от админа запускать.Если нужно, можно почти совсем пустой проект с этим делом сделать и выложить куда-нибудь.
    Было бы куда (без кучи всякой ерундовой рекламы)
    • Изменено INFEL8 29 августа 2012 г. 10:00
    • Предложено в качестве ответа Алексей ЛосевEditor 29 августа 2012 г. 10:08
    • Отменено предложение в качестве ответа user6477 31 августа 2012 г. 7:01
    • Помечено в качестве ответа user6477 31 августа 2012 г. 7:03
    29 августа 2012 г. 10:00
  • На счет манифеста: удалил манифест, перестроил проект, компильнул, опять добавил манифест, поставил requireAdministrator, перестроил, компильнул....при запуске программы теперь появляется окно UAC. Вот интересно, почему раньше то не работало, делал ведь то же самое...

    Еще раз всем спасибо за помощь.

    31 августа 2012 г. 7:01