Что мне нужно сделать, чтобы приложение запускалось с правами администратора? - PullRequest
1 голос
/ 22 февраля 2010

Я пишу приложение, которое позволяет вам превращать кнопки из wiimote в действия на вашем ПК. В настоящее время он поддерживает все функции основного пульта дистанционного управления, кроме динамика.

Теперь я сталкиваюсь с проблемами, когда запускаю его в Vista с включенным UAC.

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

  1. Решит ли мою проблему запуск приложения от имени администратора? (В какой-то момент я смог успешно навести курсор мыши на поле ввода пароля UAC)

  2. Как создать манифест, который скажет Windows "запускать от имени администратора"?

  3. Как вставить этот манифест в мое приложение, если я строго называю свою сборку?

  4. Как подписать мое заявление сертификатом Authenticode?

EDIT:

Хорошо, после более подробного исследования я нашел:

http://msdn.microsoft.com/en-us/library/bb756929.aspx

<requestedExecutionLevel
    level="asInvoker|highestAvailable|requireAdministrator"
    uiAccess="true|false"/>

Однако в статье говорится:

Приложения с флагом uiAccess значение true должно быть Authenticode подписать, чтобы начать правильно. К тому же, заявка должна находиться в защищенное место в файловой системе. \ Program Files \ and \ windows \ system32 \ в настоящее время два допустимых защищенные места.

Я отредактировал вопрос, чтобы отразить новые разработки.

1 Ответ

2 голосов
/ 25 марта 2010

3: это зависит от вашей среды разработки. Если вы не можете найти вариант для встраивания манифеста, вы можете вместо этого развернуть его как внешний файл манифеста вместе с вашим .exe. Например, если ваш .exe файл называется MyProg.exe, поместите манифест в файл с именем MyProg.exe.manifest

.

Обратите внимание, что начиная с Windows Server 2003 и более поздних версий любой внутренний манифест предпочтительнее, чем внешний манифест.

Существует также инструмент MT.exe.

4: см., Например, http://www.tech -pro.net / code-signature-for-developers.html

...