7zip - самораспаковывающиеся исполняемые файлы требуют прав администратора и вызывают предупреждение о совместимости
Когда я создаю самораспаковывающиеся архивные исполняемые файлы для Windows с помощью 7zip,.EXE запускает UAC в Windows7. И часто после распаковки я получаю это:
Я использую командную строку как: 7z a -sfx7z.sfx dir\
, Почему это происходит, и могу ли я их исправить?
2 ответа
Вы можете отключить это предупреждение, если это так, выполните следующие действия.
- Откройте диспетчер служб (нажмите
+
R, типservices.msc
и нажмите Enter). - Ищи
Program Compatibility Assistance Service
в списке. - Щелкните правой кнопкой мыши по этой услуге и выберите
Stop
, - Теперь снова щелкните правой кнопкой мыши на
Program Compatibility Assistance Service
и выберитеProperties
, - Под
General
вкладка вStartup type
нажмите раскрывающееся меню и выберитеDisabled
, - Нажмите на
Apply
затемOK
,
Примечание. Помощник по совместимости программ контролирует программы на наличие известных проблем совместимости и может быть очень полезным для конечных пользователей. Этот совет предназначен для опытных пользователей.
Другая probable solution
чтобы встроить файл манифеста, чтобы избежать этого предупреждения. Что-то вроде этого:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
Как встроить application manifest
в мой исполняемый файл?
Вы можете использовать эту утилиту (mt.exe
- при условии, что у вас установлен sdk) от Microsoft, чтобы сделать это. Вы бы использовали подобную команду, как это:
mt.exe -manifest "foo.manifest" -outputresource:"foo.exe";#1
Другие соображения
- Рассмотрите возможность использования этой программы (
7z SFX-Creator
), согласно этой странице: созданные самораспаковывающиеся архивы больше не будут вызывать оповещение PCA. - Посмотрите, может ли IExpress быть вам полезен
Ваш самораспаковывающийся архив, вероятно, содержит setup
или же install
в его имени файла. В этом случае Windows ожидает, что установит приложение.
Если Windows не обнаруживает "обычную активность установщика", она предполагает, что установка не удалась из-за отсутствия прав администратора. По этой причине он предлагает перезапустить установку с использованием рекомендуемых настроек с повышенными привилегиями.
Эта эвристика используется там, где исполняемый файл не имеет requestedExecutionLevel
элемент в его манифесте.
Эти проблемы могли быть исправлены в более новой версии самораспаковывающегося модуля 7zip.