Запускальщик по ассоциации

Projects yet to be implemented in working code
  • Вот это правильное предложение!
  • Mario_r4 wrote:Одно время даже была идея сделать библиотеку ассоциаций и один из разработчиков (не будем тыкать пальцем, но это дальний родственник пресловутого Слонёнка и если захочет сам сознается) даже брался сделать, но как обычно "обстоятельства непреодолимой силы"
    Spoiler: Show

    помешали реализации благого начинания.
    Я тут. Советов не просили, но вдруг окажется полезно: в libini есть удобная для таких задач функция ini.enum_keys. Хотя, конечно, всё зависит от реализации.

    Code: Select all

    ;;================================================================================================;;
    proc ini.enum_keys _f_name, _sec_name, _callback ;////////////////////////////////////////////////;;
    ;;------------------------------------------------------------------------------------------------;;
    ;? Enumerate keys within a section, calling callback function for each of them                    ;;
    ;;------------------------------------------------------------------------------------------------;;
    ;> _f_name = ini filename <asciiz>                                                                ;;
    ;> _sec_name = section name <asciiz>                                                              ;;
    ;> _callback = callback function address: func(f_name, sec_name, key_name, key_value), where      ;;
    ;>   f_name = ini filename (as passed to the function) <asciiz>                                   ;;
    ;>   sec_name = section name (as passed to the function) <asciiz>                                 ;;
    ;>   key_name = key name found <asciiz>                                                           ;;
    ;>   key_value = value of key found <asciiz>                                                      ;;
    ;;------------------------------------------------------------------------------------------------;;
    ;< eax = -1 (error) / 0                                                                           ;;
    ;;================================================================================================;;
  • Mario_r4 wrote:у каждого собственный файл INI с ассоциациями
    Можно использовать и один для всех ini-файл.
    Вообще можно настройки(ini, dat и т.п) хранить в отдельной папке(например /sys/settings). Но тут ешё возникает вопрос, настройки принадлежат всей системе или же только конкретной программе.
    Может возникнуть необходимость просто узнать путь к ассоциированной программе, а не сразу пытаться запустить.
    Или, например, появится какая-нибудь отдельная программа для работы с архивами(в том числе zip). Kfar сейчас заходит в архив как в папку, а другой ФМ захочет открывать в отдельной программе.
  • Отличная идея. Как насчёт того, чтобы этот файл содержал не только ассоциаци
    расширение = программа
    но и
    расширение = иконка?
    Из хаоса в космос
  • Leency wrote:Отличная идея. Как насчёт того, чтобы этот файл содержал не только ассоциаци
    расширение = программа
    но и
    расширение = иконка?
    Пищевод работает только в одну сторону и все попытки заставить его работать в обратную сторону заканчиваются с неожиданными результатами - это не библиотека.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • 0CodErr wrote:Можно использовать и один для всех ini-файл.
    Можно, но лишний код никуда не денешь.
    0CodErr wrote:Вообще можно настройки(ini, dat и т.п) хранить в отдельной папке(например /sys/settings). Но тут ешё возникает вопрос, настройки принадлежат всей системе или же только конкретной программе.
    Реестр пока не нужен, совсем не нужен.
    0CodErr wrote:Может возникнуть необходимость просто узнать путь к ассоциированной программе, а не сразу пытаться запустить.
    Звчем?
    0CodErr wrote:Или, например, появится какая-нибудь отдельная программа для работы с архивами(в том числе zip). Kfar сейчас заходит в архив как в папку, а другой ФМ захочет открывать в отдельной программе.
    Программе какая то религия запрещает вызывать запускальщик не для всех случаев и по собственному усмотрению?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Code: Select all

    [run]
    txt = /sys/tinypad
    asm = /sys/tinypad
    gif = /sys/media/kiv
    
    [icons]
    txt = 1
    asm = 1
    gif = 3
    Из хаоса в космос
  • dunkaist wrote:Я тут.
    Очень рад, что сам сознался. :lol:
    dunkaist wrote: Советов не просили, но вдруг окажется полезно: в libini есть удобная для таких задач функция ini.enum_keys. Хотя, конечно, всё зависит от реализации.
    Можно, но опять же не универсальный выход. Это лучше в самом заспускальшике использовать.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Leency wrote:

    Code: Select all

    [run]
    txt = /sys/tinypad
    asm = /sys/tinypad
    gif = /sys/media/kiv
    
    [icons]
    txt = 1
    asm = 1
    gif = 3
    Запуск по ассоциации - универсальное решение, а иконки нужны не всем и они могут быть разными для разных программ.

    З.Ы. Тут уже один бывший школьник (не будем тыкать пальцем, но тоже дальний родственник слоненка, а вернее крольчонка) очень сильно хотел иконки в бинарник размещать, не нужно повторять его опыт.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:Это лучше в самом заспускальшике использовать.
    Я это и имел в виду. В своё время думал, как просмотреть все строки из конфига, если пользователь может руками добавить какой угодно непредсказуемый ключ вроде torrent=/hd1/2/torrent_client.
  • >> З.Ы. Тут уже один бывший школьник очень сильно хотел иконки в бинарник размещать, не нужно повторять его опыт

    А сейчас ты предлагаешь, чтобы каждый ФМ, open dialog и другие программы (например, браузер показывает иконку закаченного файла) имели свой набор иконок и ассоциаций? Чем это лучше идеи Максимыча?
    Предлагаю одно место с ассоциациями. Набор иконок можно будет обсудить. И не обязательно ВСЕМ его юзать, но пусть бы он был в одном месте - и то, порядка было бы больше, а это то, зачем ты создал эту тему.
    Из хаоса в космос
  • Leency wrote:Предлагаю одно место с ассоциациями. Набор иконок можно будет обсудить. И не обязательно ВСЕМ его юзать, но пусть бы он был в одном месте - и то, порядка было бы больше, а это то, зачем ты создал эту тему.
    1) Еще раз - программа работает в одну сторону, библиотека работает в обе стороны. Я предложил сделать программу.
    2) У каждого собственные понятия "о порядке".
    3) Тему я создал для важности (чтобы гордо надувать щеки и бить себя пяткой в грудь), ведь у нас есть п.2, и чтобы учесть мнения по существу вопроса, а не на отвлеченную тему.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:Запуск по ассоциации - универсальное решение, а иконки нужны не всем и они могут быть разными для разных программ.
    Здесь вопрос в том, кому принадлежит иконка: системе, ФМ или ассоциированной программе. В больших ОС ассоциированная программа при установке может сообщить системе о своих иконках. Мы сейчас хотим, чтобы все ФМ использовали общие настройки. Вполне логично здесь считать, что они принадлежат системе.

    Если иконка не нужна(например Kfar-у она не нужна), то просто не надо читать настройки иконок. Это по аналогии с этим:
    Mario_r4 wrote:Программе какая то религия запрещает вызывать запускальщик не для всех случаев и по собственному усмотрению?
    Вот мы и не будем для всех случаев читать настройки иконок.
    Mario_r4 wrote:Реестр пока не нужен, совсем не нужен.
    Но по факту он есть: ini, dat, и т. п. Чем не реестр? Как его не называй — суть одна.
  • 0CodErr
    1) Я не буду делать иконки и точка. Кому действительно нужно сделает сам.
    2) Еще раз - это будет просто программа, без обратных связей. Передача каких либо параметров обратно, в том числе и иконок - не предусматривается.

    Все, закрываем тему с иконками. Мне лично это не нужно, если вам нужно - сделаете сами.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Who is online

    Users browsing this forum: No registered users and 8 guests