Это выполнимо, но не легко объяснить.
Существует только три причины, по которым приложение запрашивает повышение прав при запуске:
- на вкладке Compatibilty есть "Запустить эту программу от имени администратора"
- приложение имеет манифест (встроенный или внешний), который указывает
requireAdministrator
- есть обновление совместимости от Microsoft, которое пометило его как нужного администратора
Предполагая, что вы уже проверили вкладку совместимости, и приложение не требует администратора:
Следующим шагом является проверка наличия встроенного манифеста ресурса. Я не буду вдаваться в то, как вы можете это выяснить. Но пропустите, чтобы создать манифест для себя.
Создайте файл в том же каталоге, что и Fallout Mod Manager (я не знаю, как называется exe
, но я назову его FalloutModManager.exe
:
FalloutModManager.exe FalloutModManager.exe.manifest
Этот новый manifest
вами файл манифеста представляет собой простой текстовый файл, содержащий xml, с записью манифеста, в которой говорится, что мы хотим запустить asInvoker, а не requireAdministrator:
FalloutModManager.exe.manifest
<?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="client"
type="win32" />
<description>Poorly written Fallout Mod Manager fails on XP as standard user</description>
<!-- Disable file and registry virtualization, and don't require elevation -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Наличие этого файла рядом с вашим исполняемым файлом называется « внешним манифестом ». Также возможно, что исполняемый файл имеет встроенный ресурс, который вам понадобится, например, инструмент Resource Hacker, чтобы увидеть или изменить.