да очень полезная информация, ну я вот тут запутался чуток, создаем объект класса TRegistry для роботы с реестром, заносим в него информацию, проверяем существует ли ключ, открываем его и копируем в резаулт ну зачем там еще етот кусочек
r.OpenKeyReadOnly(»+Result+’ShellOpenCommand’); Result := r.ReadString(»);
(если я что то не так написал поправите)
function TForm1.ExeForExt(Ext: String): String; var r: TRegistry; begin r := TRegistry.Create(KEY_READ); try r.RootKey := HKEY_CLASSES_ROOT; if not r.KeyExists(Ext) then Exit; r.OpenKeyReadOnly(»+ext); Result := r.ReadString(»); r.CloseKey; r.OpenKeyReadOnly(»+Result+’ShellOpenCommand’); Result := r.ReadString(»); finally r.CloseKey; r.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := ExeForExt(‘.txt’); end;
и еще интересно в реестре лежит информация только об одной программе которая ассоциируется с определенным типом файлов?
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,816
Как найти программу для открытия файла по его расширению
См. реестр
По первому ключу ты получишь символическое название типа файла с таким расширением. Для .mp3 это будет, например у меня, Winamp.File.MP3
Далее ты ищешь ключ с таким названием и если он есть, то у него уже в подключе ShellOpenCommand найдешь строку запуска такого файла. Первая часть этой строки даст имя ЕХЕ-файла ассоциированного с этим файлом.
Не судите строго
Форумчанин
Регистрация: 31.03.2011
Сообщений: 202
См. реестр
По первому ключу ты получишь символическое название типа файла с таким расширением. Для .mp3 это будет, например у меня, Winamp.File.MP3
Далее ты ищешь ключ с таким названием и если он есть, то у него уже в подключе ShellOpenCommand найдешь строку запуска такого файла. Первая часть этой строки даст имя ЕХЕ-файла ассоциированного с этим файлом.
если я хочу узнать с которыми файлами работает программа, нужно взять имя приложения, по нему получить информацию про ключ с помощью OpenKey(‘SoftwareMicrosoftWindows CurrentVersionUninstall’+ mmo1.Lines[4], False); (в мемо у меня список установленных программ) а как дальше.
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,816
а как дальше? |
Перебором всех ключей в HKEY_CLASSES_ROOT. А с прицелом на будущее (по нынешним рекомендациям MS) в HKEY_LOCAL_MACHINESOFTWAREClasses и в HKEY_CURRENT_USERSOFTWAREClasses.
Не судите строго
Форумчанин
Регистрация: 31.03.2011
Сообщений: 202
Перебором всех ключей в HKEY_CLASSES_ROOT. А с прицелом на будущее (по нынешним рекомендациям MS) в HKEY_LOCAL_MACHINESOFTWAREClasses и в HKEY_CURRENT_USERSOFTWAREClasses.
если пробую такой код то ничего вообще не показывает
procedure TForm1.btn4Click(Sender: TObject); Var MyList: TStringList; i: Integer; Str: string; Reg : TRegistry; Begin Reg := TRegistry.Create; MyList:=TStringList.Create; with Reg do begin RootKey:=HKEY_LOCAL_MACHINE; if OpenKey(‘HKEY_LOCAL_MACHINESOFTWAREClasses’,False)=True then GetKeyNames(MyList); CloseKey; for i:=0 to MyList.Count-1 do begin RootKey:=HKEY_LOCAL_MACHINE; OpenKey(‘HKEY_LOCAL_MACHINESOFTWAREClasses’+ MyList[i], False); if ValueExists(MyList[i]) then ShowMessage(ReadString(MyList[i])) else ShowMessage(‘Ïàðàìåòð íå íàéäåí’); CloseKey; end; end; Reg.destroy; end;
(если написал бред пожалуйста не ругайтесь а исправьте)
Регистрация: 28.01.2009
Сообщений: 20,999
а почему не
Программы по умолчанию как открыть файлы в Windows 11
http://msdn.microsoft.com/en-us/libr. =vs.85%29.aspx ?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Не судите строго
Форумчанин
Регистрация: 31.03.2011
Сообщений: 202
а почему не
http://msdn.microsoft.com/en-us/libr. =vs.85%29.aspx ?
если я правильно разобрался, эта функция возвращает имя приложения работающего с данным типом файлов, а мне хотелось бы узнать с какими файлами работает выбранная программа
Регистрация: 30.12.2009
Сообщений: 11,442
Перечисляете типы файлов из CLASSES_ROOT и прогоняете по FindExecutable
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как узнать Веб-браузер, который стоит по-умолчанию в системе? | Vova777 | Общие вопросы Delphi | 3 | 31.03.2013 18:39 |
форма ввода пароля для открытия определенного листа Excel | zenner | Microsoft Office Excel | 2 | 22.08.2012 13:47 |
Как узнать цвет определенного пикселя? | pavellyba | Мультимедиа в Delphi | 3 | 21.06.2011 08:19 |
Как изменить путь сохранения/открытия проекта по умолчанию? | fs444 | Общие вопросы C/C++ | 22.01.2010 13:03 | |
Создание файла определенного типа | Македонский | Общие вопросы Delphi | 12 | 06.09.2007 11:58 |
Источник: www.programmersforum.ru
Как узнать, чем открыть файл неизвестного формата? Программа FileInfo
FileInfo – бесплатная программа, которая расширяет классический интерфейс Windows.
Утилита добавляет возможность посмотреть полную информацию о расширении файла
А также позволяет узнать, какие программы нужны для работы с этим расширением.
Что умеет FileInfo
Программа FileInfo включает следующие функции:
- Программа добавляет дополнительную вкладку в меню Windows, которое появляется при нажатии правой кнопкой мыши на файл. Эта функция позволяет перейти к более
подробной информации о файле и его расширении. - Программа позволяет легко загрузить программу для работы с новым расширением.
- Программа показывает подробную информацию о файле: тип, размер, дату создания, дату изменения и дату последнего открытия. Эта информация отображается в удобном
дополнительном меню.
Зачем нужна программа FileInfo?
Fileinfo – универсальная программа, которая дает дополнительную информацию о любом
файле. Использование FileInfo полезно в следующих случаях:
- Пользователь не знает, какой программой можно открыть файл. FileInfo автоматически
определит тип файла и предложит несколько программ для работы с этим расширением. Это поможет сэкономить время на поиске расширения и загрузке нужной программы. - Пользователь сомневается в надежности файла и подозревает, что он может содержать вирус. FileInfo поможет определить тип файла и понять, для чего этот файл используется.
- Пользователя не устраивает программа, которую он использует для работы с определенным типом файлов. FileInfo поможет найти информацию о других программах, которые работают с этим расширением.
- Пользователь не знает, откуда скачать определенную программу для работы с новым расширением. FileInfo поможет загрузить эту программу с официального сайта без риска заражения вирусной программой.
- Загрузка программ для работы с новым расширением. Если пользователь сталкивается с файлом, который имеет неизвестное расширение, FileInfo предложит варианты программ для работы с этим форматом.
Специально для Вас: Как выложить длинное видео в сторис Инстаграм: все актуальные способы
Для работы с большинством расширений существуют различные программы, поэтому пользователь сможет выбрать нужную из нескольких предложенных вариантов.
Дополнительные возможности программы
Также FileInfo покажет следующую информацию о файле и предложенных вариантах программ:
- расшифровку аббревиатуры расширения;
- разработчика программы для работы с файлами такого расширения;
- категорию, к которой относится эта программа;
- краткую информацию о программе.
Безопасность и надежность программы: стоит ли доверять
Вердикт нашей редакции: доверять стоит. Мы проверили установочный дистрибутив разные антивирусами и никаких угроз обнаружено не было.
FileInfo помогает безопасно скачать программу для работы с любым расширение.
Пользователь выбирает программу из списка, после чего FileInfo загружает ее актуальную версию с официального сайта разработчика. Это позволяет скачать последнюю и полностью безопасную версию нужной программы.
Источник: mirdostupa.ru
Как узнать программу для открытия файла
Выполните проверку файла DLL на наличие вирусов
При наличии на компьютере установленной антивирусной программы можносканировать все файлы на компьютере, а также каждый файл в отдельности. Можно выполнить сканирование любого файла, щелкнув правой кнопкой мыши на файл и выбрав соответствующую опцию для выполнения проверки файла на наличие вирусов.
Например, на данном рисунке выделен файл my-file. DLL , далее необходимо щелкнуть правой кнопкой мыши по этому файлу, и в меню файла выбрать опцию «сканировать с помощью AVG». При выборе данного параметра откроется AVG Antivirus, который выполнит проверку данного файла на наличие вирусов.
Шаг 2
Переустановите Windows
Иногда ошибка может возникнуть в результате неверной установки программного обеспечения, что может быть связано с проблемой, возникшей в процессе установки. Это может помешать вашей операционной системе связать ваш файл DLL с правильным прикладным программным средством, оказывая влияние на так называемые «ассоциации расширений файлов».
Иногда простая переустановка Windows может решить вашу проблему, правильно связав DLL с Windows . В других случаях проблемы с файловыми ассоциациями могут возникнуть в результате плохого программирования программного обеспечения разработчиком, и вам может потребоваться связаться с разработчиком для получения дополнительной помощи.
Совет: Попробуйте обновить Windows до последней версии, чтобы убедиться, что установлены последние исправления и обновления.
Шаг 3
Получите другую копию файла DLL
Это может показаться слишком очевидным, но зачастую непосредственно сам файл DLL может являться причиной проблемы. Если вы получили файл через вложение электронной почты или загрузили его с веб-сайта, и процесс загрузки был прерван (например, отключение питания или по другой причине), файл может повредиться. Если возможно, попробуйте получить новую копию файла DLL и попытайтесь открыть его снова.
Осторожно: Поврежденный файл может повлечь за собой возникновение сопутствующего ущерба предыдущей или уже существующей вредоносной программы на вашем ПК, поэтому очень важно, чтобы на вашем компьютере постоянно работал обновленный антивирус.
Шаг 4
Обновите драйверы устройств, связанных с Microsoft
Если ваш файл DLL связан с аппаратным обеспечением на вашем компьютере, чтобы открыть файл вам может потребоваться обновить драйверы устройств, связанных с этим оборудованием.
Эта проблема обычно связана с типами мультимедийных файлов, которые зависят от успешного открытия аппаратного обеспечения внутри компьютера, например, звуковой карты или видеокарты. Например, если вы пытаетесь открыть аудиофайл, но не можете его открыть, вам может потребоваться обновить драйверы звуковой карты.
Совет: Если при попытке открыть файл DLL вы получаете сообщение об ошибке, связанной с .SYS file, проблема, вероятно, может быть связана с поврежденными или устаревшими драйверами устройств, которые необходимо обновить. Данный процесс можно облегчить посредством использования программного обеспечения для обновления драйверов, такого как DriverDoc.
Шаг 5
Закройте другие запущенные приложения
Если шаги не решили проблему, и у вас все еще возникают проблемы с открытием файлов DLL , это может быть связано с отсутствием доступных системных ресурсов. Для некоторых версий файлов DLL могут потребоваться значительный объем ресурсов (например, память/ОЗУ, вычислительная мощность) для надлежащего открытия на вашем компьютере. Такая проблема встречается достаточно часто, если вы используете достаточно старое компьютерное аппаратное обеспечение и одновременно гораздо более новую операционную систему.
Такая проблема может возникнуть, когда компьютеру трудно справиться с заданием, так как операционная система (и другие службы, работающие в фоновом режиме) могут потреблять слишком много ресурсов для открытия файла DLL . Попробуйте закрыть все приложения на вашем ПК, прежде чем открывать DLL . Освободив все доступные ресурсы на вашем компьютере вы обеспечите налучшие условия для попытки открыть файл DLL .
Шаг 6
Обновление аппаратного обеспечения компьютера
Если вы выполнили все описанные выше шаги, а ваш файл DLL по-прежнему не открывается, может потребоваться выполнить обновление оборудования. В большинстве случаев, даже при использовании старых версий оборудования, вычислительная мощность может по-прежнему быть более чем достаточной для большинства пользовательских приложений (если вы не выполняете много ресурсоемкой работы процессора, такой как 3D-рендеринг, финансовое/научное моделирование или интенсивная мультимедийная работа). Таким образом, вполне вероятно, что вашему компьютеру не хватает необходимого объема памяти (чаще называемой «ОЗУ», или оперативной памятью) для выполнения задачи открытия файла.
Попробуйте обновить память, чтобы узнать, поможет ли это открыть файл DLL . На сегодняшний день обновления памяти являются вполне доступными и очень простыми для установки даже для обычного пользователя компьютера. В качестве бонуса вы, вероятно, увидите хороший прирост производительности при выполнении вашим компьютером других задач.
Источник: www.solvusoft.com