Он не работает, потому что когда вы запрашиваете доступ администратора, пользователь должен авторизовать его как администратор (нажмите кнопку Разрешить UAC), если он не появляется, должно быть что-то в трее значков, куда пользователь может загрузить все заблокированные exe, нажав на значок, чтобы дать права администратора. когда вы запускаете без манифеста, он работает только потому, что по умолчанию работает под стандартным доступом (без прав администратора, с базовыми правами на уровне пользователя), поэтому ваше приложение работает, но не может вносить изменения в систему или файл / элементы доступа к пути, которые могут выполнять только приложения с повышенными правами администратора. Получить меня?
Вопрос в том, как заставить ваш exe-файл автоматически запускаться с правами администратора, если он был установлен и изначально запускался с повышенными правами администратора во время его установки? Кажется, есть несколько ответов на это, но я все еще ищу, какие из них действительно работают и надежны. По сути, если он был повышен один раз, он должен продолжать повышаться (автоматически, без запроса пользователя), когда он запускается автоматически (сразу после перезагрузки) - но он этого не делает, и в этом проблема. Дайте мне знать, если вы добьетесь прогресса в этом.
ОБНОВЛЕНИЕ: 2012.11.10:
Я нашел решение, используя планировщик задач Windows для
программно планировать как задачу (т.е. запускать EXE во время
перезагрузка / запуск) и у вас есть возможность запустить его как приложение с повышенными правами,
и я думаю, что вы должны быть повышены, чтобы иметь возможность
запланировать эту повышенную запись автозапуска в задаче Windows
планировщик. Кажется странным, я знаю, но MS допустил это (и только
это) как способ автоматического поднятия ваших приложений во время запуска, и они
не предоставили другого способа сделать это. Итак, используйте соответствующие API для
зарегистрируйте расписание задач Windows, которое будет запускать ваше приложение с повышенными правами.