Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Устранение запроса на авторизацию UAC в приложении Delphi для интернет-сервиса обновлений

Delphi , ОС и Железо , Windows

Система контроля доступа пользователя (UAC) в операционных системах Windows предназначена для предотвращения несанкционированных изменений в системе. Однако, разработчики программного обеспечения могут столкнуться с ситуацией, когда UAC запрашивает разрешение на выполнение программы, даже если это не требуется. Это может быть вызвано различными факторами, включая создание сервера именованных каналов, использование TCP для FTP и HTTP, а также вызов функции SHGetSpecialFolderPath API.

Проблема с UAC в приложении Delphi

В контексте вопроса рассматривается приложение на Delphi, предназначенное для создания интернет-сервиса обновлений программного обеспечения. При запуске данного приложения на Windows 7 система UAC запрашивает у пользователя разрешение на выполнение exe-файла. Было замечено, что до добавления упомянутых элементов в код UAC не активировался, и даже удаление каждого из них по отдельности не устраняло проблему. Кроме того, для запуска отладчика Delphi 2007 требуются администраторские права.

Вопросы, на которые ищем ответы

  1. Как определить, что именно вызывает запрос UAC, не начиная с нуля в новом проекте?
  2. Вызовет ли использование подписанного exe с помощью Authenticode еще большее отображение уведомлений UAC?

Анализ проблемы

Подтвержденный ответ указывает на то, что UAC запрашивает разрешение не из-за действий программы, которые требуют административных прав. Вместо этого, UAC реагирует на свойства самого exe-файла, включая его имя, установленные параметры совместимости и автоматически примененные системой изменения. Устранение проблемы может потребовать переименования exe-файла, проверки вкладки совместимости в свойствах файла и, возможно, включения манифеста с уровнем выполнения "asInvoker".

Решение проблемы

Для устранения запроса UAC в приложении Delphi следует выполнить следующие шаги:

  1. Переименование exe-файла: Избегайте использования слов, связанных с установкой или обновлением, и проверьте наличие значка с изображением щита в Проводнике Windows.
  2. Проверка параметров совместимости: Откройте свойства exe-файла и перейдите на вкладку "Совместимость", чтобы убедиться, что не установлено автоматическое повышение прав.
  3. Включение манифеста: Добавьте манифест с указанием уровня выполнения "asInvoker" в ваш проект Delphi. Это просто и эффективно устраняет проблемы с UAC.
program MyUpdateService;

{$APPTYPE CONSOLE}

uses
  System.SysUtils;

{$R *.res}

initialization
  // Загрузка манифеста
  if not TryCreateProcessManifest('MyUpdateService.exe') then
    RaiseLastOSError;
end.

В этом примере кода на Object Pascal (Delphi) используется функция TryCreateProcessManifest для создания манифеста с заданным уровнем выполнения, который поможет избежать нежелательных запросов UAC.

Заключение

При разработке приложений на Delphi важно учитывать потенциальные проблемы с UAC и следовать правилам, которые предотвращают его нежелательное вмешательство. Использование манифеста с уровнем выполнения "asInvoker" является простым и надежным решением для устранения запросов на авторизацию UAC в приложениях, не требующих административных прав.

Создано по материалам из источника по ссылке.

Устранение запроса на авторизацию UAC в приложении Delphi, предназначенном для интернет-сервиса обновлений, путем анализа свойств exe-файла и использования манифеста с уровнем выполнения 'asInvoker'.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 11:01:55/0.0061559677124023/0