Russian Qt Forum
Ноябрь 25, 2024, 00:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как ассоцируются тип файла и приложение которым нужно его открывать QT 3.3.8  (Прочитано 9774 раз)
tician
Гость
« : Июнь 16, 2009, 09:22 »

Возможно ли при помощи QT узнать какое приложение ассоцированно(для открытия) с каким типом файлом?
Записан
crossly
Гость
« Ответ #1 : Июнь 16, 2009, 11:27 »

 на разных системах по разному.... qt это определить не может...
Записан
spectre71
Гость
« Ответ #2 : Июнь 16, 2009, 11:40 »

Для Windows есть способ - через рестр(правда не так просто)
С Linux - беда!

А для MAC есть способ?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июнь 16, 2009, 15:01 »

в маке надо man open сделать. Сейчас нет под рукой ноута, точно сказать не могу. Можно погуглить как раз man open. open - командочка, которая как раз с консоли запускает файл\папку иходя из ассоциаций установленных.
Записан
spectre71
Гость
« Ответ #4 : Июнь 16, 2009, 16:12 »

в маке надо man open сделать. Сейчас нет под рукой ноута, точно сказать не могу. Можно погуглить как раз man open. open - командочка, которая как раз с консоли запускает файл\папку иходя из ассоциаций установленных.
Запуск это не то. Необходимо получение некоторой ассоциации.
Например у меня в приложении под виндой я ищу в реестре(весьма не тривиально) какая программа будет запускаться(из проводника) если файл имеет расширение "txt", а потом запускаю ее когда необходимо с нужными мне файлами, которые могут иметь совсем другое расширение(но я знаю что ини тектовые).
По идее задача получить пути и коммандные строки(для запуска) программ ассоциированных с некоторим MIME типом.
Записан
BRE
Гость
« Ответ #5 : Июнь 16, 2009, 16:43 »

А если это доверить оконным средам.
Т.е. для открытия файла использовать QDesktopServices::openUrl, если ассоциация есть, откроется соответствующая программа, если нет, то среда сама спросит с чем связать данные тип файла и запомнит это.

Как вариант...  Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Июнь 16, 2009, 16:51 »

Я так понял, что автору нужно именно не ассоциировать, а запускать.
Как пример:
1. Есть у меня прога, которая открывает файлы bla, этот тип файлов за прогой зарегистрирован.
2. Есть у меня файл blo, который имеет тот же самый формат, но я не хочу его ассоциировать, а хочу прямо запускать прогу ассоциированную с bla и передавать ей как параметр файл blo.
В данном случае решение только через платформозависимые средства.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
spectre71
Гость
« Ответ #7 : Июнь 16, 2009, 17:20 »

А если это доверить оконным средам.
Т.е. для открытия файла использовать QDesktopServices::openUrl, если ассоциация есть, откроется соответствующая программа, если нет, то среда сама спросит с чем связать данные тип файла и запомнит это.

Как вариант...  Улыбающийся
Я запускаю в своей проге задачи с параметрами заданными пользователем, в том числе и имена файлов.
Пользователь вбил для результата имя файла "result.txt" или "result" или "bla-bla.polnaya_fignya".
А потом просит мою прогу открыть файл в тектовом редакторе.
Записан
spectre71
Гость
« Ответ #8 : Июнь 16, 2009, 17:23 »

Я так понял, что автору нужно именно не ассоциировать, а запускать.

Все правильно не ассоциировать, а находить что ассоциировано с MIME типом и запускать
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Июнь 16, 2009, 17:37 »

А если предложить пользователю в настройках выбрать программу? Ты, походу, хочешь сделать подобие утилитки для TotalCommander под названием OpenFileTC, там как раз так и сделано: сначала добавляешь в список программки, а потом при запуске проги выдаешь список прог и при выборе какой-либо из них увеличиваешь ее счетчик, чтобы в следующий раз она была выше других.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Rcus
Гость
« Ответ #10 : Июнь 16, 2009, 17:55 »

У freedesktop.org есть спецификация на этот случай (http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html)
В kdelibs действительно есть обертка в виде system configuration cache (SyCoCa)
Записан
spectre71
Гость
« Ответ #11 : Июнь 16, 2009, 17:57 »

А если предложить пользователю в настройках выбрать программу? Ты, походу, хочешь сделать подобие утилитки для TotalCommander под названием OpenFileTC, там как раз так и сделано: сначала добавляешь в список программки, а потом при запуске проги выдаешь список прог и при выборе какой-либо из них увеличиваешь ее счетчик, чтобы в следующий раз она была выше других.
1) Нет это не подобие утилитки TotalCommander, что это можешь посмотреть по ссылке в подписи
2) В настройках выбирать программу - это хорошо. Но пока пользователь туда доберется.....
    До этого времени желательно уметь открывать тектовые файлы чем-то по умолчанию.
    В Windows я эту задачу решил. Хотелось бы решить и под MAC.
    Под Linux в среднем более продвинутые юзеры, которым будет не так сложно чего-либо настроить.
    Ведь настройка это не просто указание пути на прогу, но и правильных параметров коммандной строки.
  
Записан
spectre71
Гость
« Ответ #12 : Июнь 16, 2009, 18:13 »

У freedesktop.org есть спецификация на этот случай (http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html)
В kdelibs действительно есть обертка в виде system configuration cache (SyCoCa)

Интересно. Но это только для KDE и GNOME.
И я так и не понял где эти файлы хранятся, дабы просканировать их и выудить нужные данные.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #13 : Июнь 16, 2009, 20:40 »

для справки - в мане пишутся файлы, используемые той или иной утилитой. Так что man open самое то.
Записан
spectre71
Гость
« Ответ #14 : Июнь 16, 2009, 21:20 »

для справки - в мане пишутся файлы, используемые той или иной утилитой. Так что man open самое то.
Это к чему. Про какие файлы и утилиты идет реч. Подробнее пожалуйста.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.