Я использую Windows 7 и Microsoft Visual Studio 2010.Windows усиливает выравнивание UAC для файлов, если их имена содержат «обновление»?
Я создал простой проект с одним MessageBox()
звоним в WinMain()
. Название проекта: "update"
, поэтому имя файла EXE: update.exe
. Я отключил манифестацию в настройках компоновщика. Но когда я пытаюсь начать отладку в Visual Studio, он говорит, что мое приложение требует повышения.
Я решил запустить приложение, щелкнув его в проводнике Windows, но для него все еще требуются права администратора. Я переименовал его в update12345.exe
и в 12345update12345.exe
, но он по-прежнему требует высоты.
Но когда я переименовал его в 12345.exe
, он отлично работал без запроса прав администратора! Я думал, что Windows требует возвышения для всех файлов, имя которых содержит "update"
подстроку. Итак, я взял другой файл (debugview.exe
из SysInternals DebugView) и переименовал его в update.exe
- но он работает без повышения.
В чем может быть причина этого странного поведения?
Вы не строите свою программу правильно, ей не хватает манифеста, объявляющего об этом в UAC. Это довольно сложно сделать с Visual Studio, попав в ядро успеха, используя шаблон проекта, чтобы запустить ваш проект. –
Я всегда разрабатывал проекты без манифеста, и они отлично работали. Мой проект предназначен для работы в любой системе Windows, и он не делает ничего, что требует UAC. Но проблема в имени файла: если он содержит «обновление», он требует UAC, если он не запускается и работает отлично. – deselect
Hmya, они отлично работают, пока вы не нанесете какую-то накладку на стену. Как этот. У вас будет больше сюрпризов, когда вы делаете такие вещи, как рвота в реестре и доступ к файлам в запрещенных местах. Присутствие манифеста не влияет на старые версии Windows, которые не знают, что они означают. –