![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как ассоциировать файлы с вашим приложением на Delphi для разных версий WindowsDelphi , Интернет и Сети , БраузерВведениеПри разработке приложений на Delphi часто возникает необходимость ассоциировать определённые типы файлов с вашим приложением. Это позволяет пользователям открывать файлы с помощью вашего приложения, если они выберут их в проводнике или в других программах, поддерживающих ассоциации файлов. В Windows для ассоциации файлов с приложением традиционно используется редактирование системного реестра, но с выходом Windows Vista и 7, политика доступа к системному реестру стала строже. ПроблемаВопрос о том, как ассоциировать файлы с приложением на Delphi в свете изменений в Windows 7 и Vista, касается не только непосредственного изменения реестра, но и вопросов безопасности и управления привилегиями. Разработчики, привыкшие к старым методам, сталкиваются с новыми ограничениями, которые могут затруднить процесс ассоциации файлов. РешениеИспользование системного реестраРабота непосредственно с системным реестром (HKEY_CLASSES_ROOT) является стандартным способом управления ассоциациями файлов. Однако, начиная с Windows Vista, редактирование HKEY_LOCAL_MACHINE требует повышенных привилегий. Это означает, что обычному приложению не удастся изменить системные ассоциации файлов без запроса на повышение привилегий. Применение манифестаДля решения этой проблемы можно использовать манифест, который позволит приложению запускаться с повышенными привилегиями. Для этого необходимо добавить XML-файл манифеста к ресурсам приложения. Это заставит систему автоматически запрашивать повышение привилегий при запуске приложения, и приложение сможет изменять системный реестр. Использование установочного пакетаПри установке приложения лучше всего использовать установочный пакет, такой как Inno Setup, который автоматически добавит манифест и обеспечит необходимые привилегии для изменения системного реестра в процессе установки. Использование HKEY_CURRENT_USERЕсли приложение должно позволять пользователям изменять ассоциации файлов во время работы, лучше использовать HKEY_CURRENT_USER, так как для этого не требуются повышенные привилегии. Возврат измененийДля возможности отката изменений ассоциаций файлов, можно сохранить предыдущее состояние реестра перед его изменением, и затем восстановить его в случае необходимости. Пример кода
В данном примере кода создаётся регистр, который открывает нужную ветку и задаёт команду для открытия файлов определённого типа. ЗаключениеВ современных версиях Windows для ассоциации файлов с приложением необходимо использовать новые методы, которые учитывают политику безопасности и управления привилегиями. Использование манифестов и установочных пакетов, таких как Inno Setup, позволяет обеспечить надёжную ассоциацию файлов без риска для безопасности системы. При разработке приложений на Delphi в Windows 7 и Vista возникли ограничения для ассоциации файлов с приложением, требующие использования манифестов и установочных пакетов для изменения системного реестра. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |