![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть программа, хочу что бы определённые расширения файлов, по двойному клику по ним, открывались в моей программе.
В ручную это - пкм по файлу, свойства, вкладка общее, кнопка изменить и выбор программы.. В программе есть лист бокс, в нем я записываю все расширения, которые должны открываться в моей программе. По кнопке происходит цикл и расширения ассоциируются с программой. Проблема в автоматической ассоциации.. Знаю что в реестре, знаю что это не в HKEY_CLASSES_ROOT а HKEY_CURRENT_USER\Software\Classes\ Только вот ничего не получается, расширения не ассоциируются с программой. Помогите, что делаю не так? Код:
зы ProText - название exe моей программы win7 64, delphi 10.3 Последний раз редактировалось Gareth, 29.08.2022 в 22:28. |
#2
|
|||
|
|||
![]() бинарник 32 бита?
Таи, вроде, были заморочки, что для 32 битных бинарников своя копия реестра. Вроже, если пишешь в HKEY_LOCAL_MACHINE, то будет работать,а вот с HKEY_CURRENT_USER какие-то заморочки. ЗЫ. Я отказался от регистрации ассоциаций из самого экзешника в пользу регистрации при инсталяции. Пользуюсь InnoSetup. Он делает все правильно. ЗЗЫ. По коду. А кто будет закрывать ключи за тобой. Можнт потому и не работает? ЗЗЫ2. Расширение с точкой передаешь? Типа ".txt"? ЗЗЫ3. А, кажется понял почему не работает. Смотри вот этот пример внимательно: https://stackoverflow.com/questions/...e-current-user В первом ключе надо писать не имя экзешника, а имя программы, т.е. в твоем случае "ProText" Далее, что за извращение в строке 11 и 13? ParamStr(0) уже дает тебе полный путь к бинарнику. В строке 13, вроде, пробела не хватает (разделение имени бинарника и параметра). |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Gareth (30.08.2022)
|
#3
|
|||
|
|||
![]() Цитата:
Код:
Наверно проще будет сказать, что в реестре должно появится и по какому пути... Я просто не понимаю саму суть этого всего.. Вот что в реестре: ![]() |
#4
|
|||
|
|||
![]() так же скачал pas файл DSiWin32.pas
В нем уже есть функция ассоциации файлов... Пытаюсь ассоциировать - результат тот же, ассоциация не меняется, даже после перезагрузки пк. ![]() Код:
|
#5
|
|||
|
|||
![]() Строка 12.
Должна быть \Software\Classes\ProText\shell\open\command |
#6
|
|||
|
|||
![]() Цитата:
скачал программу которая отслеживает все изминения в реестре.. В ручную менял программу по умолчанию для расширения, смотрел что изменилось в реестре - пытался сделать тоже самое через delphi - безрезультатно. ![]() |
#7
|
|||
|
|||
![]() Ну не знаю что у тебя там не работает.
Вот для D10.2 у меня все ок - регистрирует, при клике - открывает: Код:
|
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Gareth (10.01.2023)
|