|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Программная ассоциация файлов с моей программой
Есть программа, хочу что бы определённые расширения файлов, по двойному клику по ним, открывались в моей программе.
В ручную это - пкм по файлу, свойства, вкладка общее, кнопка изменить и выбор программы.. В программе есть лист бокс, в нем я записываю все расширения, которые должны открываться в моей программе. По кнопке происходит цикл и расширения ассоциируются с программой. Проблема в автоматической ассоциации.. Знаю что в реестре, знаю что это не в HKEY_CLASSES_ROOT а HKEY_CURRENT_USER\Software\Classes\ Только вот ничего не получается, расширения не ассоциируются с программой. Помогите, что делаю не так? Код:
Function asss(Const Ext, ExeName: String): Boolean; begin with TRegistry.Create do try RootKey := HKEY_CURRENT_USER; if OpenKey('\Software\Classes\.'+ Ext, TRUE) then WriteString('', ExeName); if OpenKey('\Software\Classes\ProText', TRUE) then WriteString('', 'My Very Own Text File Type'); if OpenKey('\Software\Classes\ProText\DefaultIcon', TRUE) then WriteString('', ExtractFilePath(ParamStr(0)) + ExeName); if OpenKey('\Software\Classes\ProText\shell\open\command', TRUE) then WriteString('', ExtractFilePath(ParamStr(0)) + ExeName + '"%1"'); finally Free; end; SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0); end; зы ProText - название exe моей программы win7 64, delphi 10.3 Последний раз редактировалось Gareth, 29.08.2022 в 22:28. |