Почему моя программа запрашивает разрешение на запуск в Vista?

StackOverflow https://stackoverflow.com/questions/95525

  •  01-07-2019
  •  | 
  •  

Вопрос

Я только что создал программу на VS C ++ 6.0, используя VS 2008.Когда я пытаюсь запустить или отладить приложение, Vista запрашивает разрешение.Что такого в том, как построена программа, что вызывает это?Программа создается и запускается из вложенной папки C:\Dev

Этот ответ для меня это не имело никакого смысла в качестве решения проблемы.

Это было полезно?

Решение

Возможность 1:

Ваша программа помечена в своем манифесте как нуждающаяся в правах администратора

Возможность 2:

Ваша программа называется setup.exe или install.exe - при таких названиях программ всегда требуются права администратора

Для подробного объяснения этих и других возможностей, почему вы видите этот флажок Знакомство со статьей Technet о контроле учетных записей пользователей

Другие советы

MVP говорил о запуске вашего кода и проекта, например, из вашей папки пользователя c:\users\yourname\appdata или чего-то еще по этому пути.

Не отключайте UAC, чтобы устранить эту проблему, иначе ваше приложение не будет запускаться на другом компьютере, если на нем не отключен UAC.Это очень плохая практика.В идеальном мире ваше приложение должно запрашивать у пользователя повышенные разрешения.

Спасибо тебе, Сума.Ваш ответ на данный момент самый лучший и помог мне прийти к решению.Я определил, что причина объясняется вашим первым предположением.Переименование файла во что-либо, не содержащее слова "setup", не помогло.

Оказалось, я ошибся.У меня установлены как VS 2005, так и VS 2008, и когда я попытался открыть старый файл .dsw, был запущен именно 2005 год, и мне предложили обновить проект.2005, по-видимому, создал манифест, содержащий только одну строку с тегом "assembly".Как только я обновил проект с помощью VS 2008, был создан более обширный файл манифеста.Я подтвердил, что манифест внедряется в мою программу, проверив инструмент манифеста...Ввод и вывод...Настройка встраивания манифеста.Этот новый манифест содержит следующие данные:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>   

Если вы не администратор, то у вас, вероятно, нет прав на выполнение программ в C:\Dev.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top