Мне нужно распространять программу для пользователей Windows (XP, 7, 8). Программа требует административных прав, потому что, среди прочего, она добавляет и удаляет маршруты. Проблема в том, что флаг "Запускать эту программу от имени администратора" на исполняемом файле не сохраняется, поэтому я полагаю, что я могу программно добавить это, используя пакетный скрипт или что-то подобное в своего рода сценарии установки.

Это правильный подход, и если да, то как добавить этот флаг?

1 ответ1

7

Вы можете включить файл манифеста в ресурсы исполняемого файла. Это заставит Windows требовать права администратора для этого файла во всех системах.

Вы можете открыть любой установщик с помощью Resource Hacker, и вы найдете файл XML, подобный этому:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
    <ms_asmv2:security>
      <ms_asmv2:requestedPrivileges>
        <ms_asmv2:requestedExecutionLevel level="requireAdministrator" uiAccess="false"></ms_asmv2:requestedExecutionLevel>
      </ms_asmv2:requestedPrivileges>
    </ms_asmv2:security>
  </ms_asmv2:trustInfo>
</assembly>

Это файл манифеста. Вам нужно что-то подобное, скомпилированное в ресурсы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .