7

Когда я создаю самораспаковывающиеся архивные исполняемые файлы для Windows с 7zip,.EXE запускают UAC в Windows7. И часто после распаковки я получаю это:

Я использую командную строку, например: 7z a -sfx7z.sfx dir\ . Почему это происходит, и могу ли я их исправить?

2 ответа2

3

Вы можете отключить это предупреждение, если это так, выполните следующие действия.

  1. Откройте диспетчер служб (нажмите + R, введите services.msc и нажмите Enter).
  2. Найдите в списке Program Compatibility Assistance Service .
  3. Щелкните правой кнопкой мыши по этой услуге и выберите Stop .
  4. Теперь снова щелкните правой кнопкой мыши Program Compatibility Assistance Service и выберите Properties .
  5. На вкладке « General » в разделе « Startup type щелкните раскрывающееся меню и выберите « Disabled .
  6. Нажмите 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 быть вам полезен
3

Ваш самораспаковывающийся архив, вероятно, содержит setup или install в своем имени файла. В этом случае Windows ожидает, что установит приложение.

Если Windows не обнаруживает «обычную активность установщика», она предполагает, что установка не удалась из-за отсутствия прав администратора. По этой причине он предлагает перезапустить установку с использованием рекомендуемых настроек с повышенными привилегиями.

Эта эвристика используется в тех случаях, когда исполняемый файл не имеет элемента requestedExecutionLevel в своем манифесте.

Эти проблемы могли быть исправлены в более новой версии самораспаковывающегося модуля 7zip.

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