Запуск с правами администратора при помощи .manifest (26.08.2014). Печать
2014 - Август
26.08.2014 18:15
Save & Share

Пусть написана программа, и ей для запуска в ОС Windows Vista и новее требуются права администратора. Можно сделать заметку в инструкции, мол "пользователь, запускайте программу с правами администратора". Но не все пользователи знают, что это такое. Для этого есть решение, основанное на создании файла .manifest.

Пусть имя исполняемого файла программы - "Program.exe". Тогда файл манифеста, написанный на языке XML, должен иметь название "Program.exe.manifest" и лежать в той же директории.

Содержимое универсального файла .manifest я менял на протяжение пары лет, и только сейчас смог вывести его универсальный (независимый кодом от названия приложения), компактный (444 байта) и ничего не меняющий в приложении, кроме его автоматического запуска с правами администратора (ранее очень мешало визуальное изменение интерфейса в некоторых ОС, связанное с принудительным запуском библиотеки ComCTL32.dll v.6.0).

Итоговый код выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="1" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

Обновлено ( 26.08.2014 18:24 )