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

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

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

Вы используете VS как администратор? Я считаю, что это необходимо

rjrapson 18.09.2008 22:46

Я думал, но может ошибаться, что VS 2008 SP1 устранил эту проблему и будет запрашивать разрешение при загрузке.

typemismatch 18.09.2008 22:55

Да, я работаю как администратор. VS 2005 был проблемой. Переход на 2008 год исправил ситуацию.

AlanKley 18.09.2008 23:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
3
1 134
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

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

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

Ответ принят как подходящий

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

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

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

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

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

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

Оказалось, я ошибался. У меня установлены и 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>   

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