Почему моя программа запрашивает разрешение на запуск в Vista? - PullRequest
3 голосов
/ 18 сентября 2008

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

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

Ответы [ 4 ]

3 голосов
/ 18 сентября 2008

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

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

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

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

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

1 голос
/ 18 сентября 2008

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

Оказалось, я ошибся. У меня установлены как VS 2005, так и VS 2008, и когда я попытался открыть старый файл .dsw, был запущен 2005 и предложено обновить проект. 2005, очевидно, создал манифест только с одной строкой с тегом «сборка». После того, как я обновил проект с использованием VS 2008, был создан более обширный файл манифеста. Я подтвердил, что манифест встраивается в мою программу, проверив настройку Manifest Tool ... Input and Output ... Embed Manifest. Этот новый манифест содержит следующие данные:

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

1 голос
/ 18 сентября 2008

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

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

0 голосов
/ 18 сентября 2008

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

...