Есть приложение на Qt, и обычно располагается в Program Files. В некоторых случаях, когда запускается программа, она запрашивает/не запрашивает права администратора. Что нужно дописать, чтобы запускался всегда с правами админа.
Чтобы программа запрашивала права администратора в Windows, нужно внедрить в неё файл манифеста. Файл внедряется в готовый исполняемый файл программой mt. Обычно она устанавливается вместе с Visual Studio. Если вы не используете Visual Studio, то вам придётся установить эту программу отдельно, читайте соответствующую документацию. Файл манифеста может выглядеть следующим образом:
<?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="X86" name="applicationname" type="win32"></assemblyIdentity>
<description>Description of application</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Сохраните этот файл под именем manifest.xml рядом с вашим исполняемым файлом. После этого запустите в командной строке:
mt -manifest manifest.xml -outputresource:your_program.exe
Чтобы манифест автоматически внедрялся в файл при сборке проекта в Qt Creator, нужно добавить в pro-файл сценарий пост-линковки:
win32 {
QMAKE_POST_LINK += mt -manifest $$PWD/manifest.xml -outputresource:$$OUT_PWD/$$TARGET".exe" $$escape_expand(\n\t)
}
Продвижение своими сайтами как стратегия роста и независимости