![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Работа с собственными расширениями файлов в Delphi: автоматический выбор программы и получение путиDelphi , Интернет и Сети , БраузерПри разработке программного обеспечения, особенно с использованием языков программирования, таких как Object Pascal (Delphi), часто возникает необходимость создания собственных расширений файлов. Это позволяет разработчикам определить, какие программы должны открываться по умолчанию для работы с файлами определенного типа. Однако, когда пользователь открывает файл с нестандартным расширением, созданным в программе, возникает вопрос: как получить путь к файлу, который стал триггером для запуска программы? Описание проблемыРассмотрим ситуацию, когда разработчик создает новое расширение, например, Подтвержденный ответДля решения этой задачи, когда вы создавали ассоциацию файла, вы указали команду, которую должен выполнить проводник для запуска вашей программы. Помимо команды, оболочка добавляет на командную строку имя документа-файла. В вашей программе, для получения пути к файлу, необходимо проверить аргументы командной строки. Способ проверки зависит от используемого вами языка и среды разработки. В Delphi для этого можно использовать функции При создании ассоциации файла вы можете указать точное место в командной строке, куда должен быть вставлен документ-файл. Используйте
С такой ассоциацией, при двойном клике по другому документу-файлу, будет запущена новая инстанция вашей программы. Если вы предпочитаете, чтобы документ открывался в другом окне уже запущенной программы, вы можете написать код, который будет искать уже запущенные инстанции при старте программы. Если таковые найдутся, то можно установить связь с ними, чтобы сообщить о новом файле для открытия. Существуют различные способы связи, включая mailslots, сокеты, именованные каналы, файлы с обратной записью в память и DDE. Оболочка уже имеет механизм для связи через DDE, который позволяет избежать запуска второй инстанции программы. Вместо этого, оболочка начинает DDE-диалог с уже работающей инстанцией и сообщает ей имя нового файла. Однако, DDE в настоящее время выходит из употребления, так что стоит рассмотреть другие варианты связи. Альтернативный ответДля проверки занятости расширения, нет единого публичного списка, но существует сервис shell.windows.com, который используется проводником для поиска обработчиков для неизвестных типов файлов. Вы можете создать новое расширение, а затем запросить у shell.windows.com, зарегистрировано ли оно кем-либо. Для проверки занятости расширения
Замените Дополнительную информацию можно найти в KB929149 и в посте Раймонда Чена Where does shell.windows.com get information about file extensions, and how do I get in on that action?. Пример кода на Object Pascal (Delphi)
Приведенный выше код можно использовать в обработчике события ЗаключениеРабота с собственными расширениями файлов в Delphi может быть удобным и мощным инструментом для разработчиков, позволяя автоматически выбирать программу для открытия файлов с определенными расширениями и получать доступ к пути этих файлов. Используя функции командной строки и другие механизмы связи, разработчики могут обеспечить более интегрированный и удобный пользовательский опыт. Вопрос касается разработки программного обеспечения на Delphi, где необходимо работать с собственными расширениями файлов, автоматически выбирать программу для их открытия и получать доступ к пути этих файлов. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |