2011-12-15 2 views
3

Итак, у меня есть приложение, для которого необходимы права администратора.манифест приложения, права администратора и автозапуск в Windows Vista 7

Я создал файл app.manifest. Он работает отлично.

Но теперь мне нужно настроить мою программу на автозапуск в Windows, и у меня возникают проблемы с этим. Если моя программа имеет app.manifest файл - программа не загружается при запуске Windows, но когда я удаляю файл app.manifest - он работает хорошо.

Вот код из файла app.manifest:

<?xml version="1.0" encoding="utf-8"?> 
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <assemblyIdentity version="1.0.0.0" name="update.app"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 

    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 
     <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>--> 
    </application> 
    </compatibility> 
</asmv1:assembly> 

Спасибо за вашу помощь.

+0

проверить мой ответ, дайте мне знать, если вам нужно больше направлений, поскольку я активно исследую ту же проблему. –

ответ

0

Я не уверен, но это, вероятно, об аутентификации пользователя запуска. если вы этого еще не сделали, вы можете проверить there для получения более подробной информации.

4

Это не работает, потому что, когда вы запрашиваете доступ администратора, пользователь должен авторизовать его как администратора (нажмите кнопку «Разрешить UAC»), если он не появляется, в лотке значков должно быть что-то, где пользователь может загрузить все заблокированные exe, щелкнув значок, чтобы предоставить права администратора. когда вы запускаете без манифеста, он работает только потому, что по умолчанию он работает под стандартным доступом (доступ без доступа администратора, основные права пользователя), так что вы используете приложение, но не в состоянии вносить изменения в систему или файл/которые доступны только администраторам с повышенными правами. Поймай меня?

Вопрос в том, как вы получаете свой exe для автоматического запуска с правами администратора, если он был установлен и изначально запускался с привилегиями администратора при его установке? Кажется, есть несколько ответов на это, но я все еще ищу, какие из них действительно работают и являются надежными. В принципе, если он был повышен один раз, он должен оставаться повышенным (автоматически, без запроса пользователя), когда он запускается автоматически (сразу после перезагрузки), но он НЕ делает этого, и в этом проблема. Дайте мне знать, если вы достигнете прогресса в этом.

UPDATE: 2012.11.10:

Я нашел решение, с помощью планировщика задач Windows, чтобы программно планировать как задача (это существо, чтобы запустить EXE во время перезагрузки/запуска) & у вас есть возможность запускать его как повышенное приложение, , и я думаю, что вам нужно быть поднятым для начала, чтобы иметь возможность запланировать эту возвышенную запись автозапуска в задаче windows. Кажется странным, что я знаю, но MS разрешила это (и только это) как способ автоматического подъема ваших приложений во время запуска, и они не предоставили другой способ сделать это. Таким образом, используйте соответствующие API для , чтобы зарегистрировать расписание задач Windows, в результате чего ваше приложение будет повышено.

Смежные вопросы