2010-09-30 3 views
3

При запуске моего исполняемого файла Windows запрашивает повышение, когда этого не должно быть.Как определить, почему приложение запрашивает повышение.

Как я могу вычислить Почему Windows побуждает меня поднять мой исполняемый файл при запуске?

Примечание:

  • нет нет ресурса манифеста (просить asAdministrator или иначе)
  • нет нет файла манифеста
  • вкладки совместимости (для всех пользователей и только я) имеет «Запуск от имени администратора» не проверен

Как я могу определить, почему мое приложение запрашивает повышение?

+0

Есть ли какая-либо операция ввода-вывода файла, требующая доступа администратора? (В папках Windows/Program Files), в реестре? – Ruel

+1

Что ваш код пытается сделать, НИКОГДА не приведет к повышению. –

ответ

3

В отсутствие манифеста, обычные причины - это эвристика имени (например, ваш файл называется setup.exe) и групповая политика (которую вы, возможно, случайно установили после того, как диалоговое окно «Эта программа может не работать как ожидалось» .)

Чтобы предотвратить его, просто примените манифест (встроенный или внешний) с помощью asInvoker. Тогда вы больше не будете заботиться об этих эвристиках, и вы не подниметесь.

Я знаю, что я прокомментировал это выше, но мне нужно повторить его: то, что ваш код пытается сделать, НИКОГДА не приведет к повышению. НИКОГДА. Материал, который не будет работать, если вы не приподняты, не работает, когда вы не подняты. Он не поднимает вас.

+0

Черт побери, я создал внешний файл 'MyApp.exe.manifest', объявив' asInvoker', и он все еще запрашивает. Но я переименую исполняемый файл, и он больше не работает. я все еще надеюсь найти журнал где-то * почему * Windows считает, что приложение нуждается в повышении (проявленный 'requireAdministrator', запрос совместимости пользователей, все запросы совместимости пользователей, эвристическое обнаружение установки и« разные ») –

+0

Вероятно, запрос совместимости, связанный с именем, так что изменение имени нарушило запрос. Я не удивлюсь, если они переведут манифесты. Вы могли бы поиграть с этим немного, чтобы установить «иерархический порядок» - я его нигде не видел. –