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

Проблема с UAC при изменении названия исполняемого файла на Delphi

Delphi , Программа и Интерфейс , EXE файл

При разработке внутренних инструментов на Delphi иногда можно столкнуться с неожиданным поведением операционной системы, которое может быть вызвано изменением названия исполняемого файла. В частности, вопрос пользователя связан с изменением поведения программы при превышении 8.3-символьного ограничения, характерного для старых версий файловой системы Windows.

Описание проблемы

Разработчик столкнулся с тем, что при использовании одного и того же исполняемого файла (.exe), но с разной длиной названия, поведение системы меняется. В частности, при названии файла RecUtil программа запускается без дополнительных действий. Однако, при изменении названия на RecUpdate система требует от пользователя подтверждения для запуска приложения.

Контекст и решение

Система контроля учетных записей пользователей (User Account Control, UAC) в Windows может реагировать на определенные ключевые слова в названиях файлов, которые могут ассоциироваться с установщиками или другими программами, требующими повышенных привилегий. В данном случае, использование слова "update" в названии файла могло вызвать реакцию UAC.

Подтвержденный ответ

Проблема не связана с длиной названия файла, а с содержанием. Удаление слова "update" из названия файла решило проблему с UAC. Для избежания подобных проблем можно использовать манифест приложения, который позволяет указать уровень выполнения, необходимый для программы, и таким образом обойти механизмы обнаружения установщиков Windows.

Альтернативное решение

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

Пример кода

В настройках проекта Delphi можно добавить манифест приложения, который позволит указать необходимый уровень выполнения программы. Ниже приведен пример кода манифеста, который можно вставить в соответствующий раздел проекта:

<trustInfo XMLns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false" />
    </requestedPrivileges>
  </security>
</trustInfo>

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

Заключение

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

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

Проблема с User Account Control (UAC) в Windows связана с изменением названия исполняемого файла на Delphi, которое может привести к нежелательной реакции системы из-за использования определенных ключевых слов, ассоциируемых с установщиками или программа


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

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




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


:: Главная :: EXE файл ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 12:58:40/0.0035591125488281/0