Название: Как ассоциировать файлы Отправлено: Hort от Октябрь 30, 2008, 17:44 Как асоциировать файлы со своим приложением в Qt? Желательно небольшой примерчик
Название: Re: Как ассоциировать файлы Отправлено: Пантер от Октябрь 30, 2008, 18:03 Это платформозависимо. В Куте таких возможностей нет.
Название: Re: Как ассоциировать файлы Отправлено: Alex Custov от Октябрь 30, 2008, 18:24 В Linux принято создавать .desktop файлы с описанием программы и поддерживаемыми ею MIME типами, а пользователь потом сам ассоциирует, если захочет.
Название: Re: Как ассоциировать файлы Отправлено: Hort от Октябрь 30, 2008, 22:53 пытаюсь прочесть из реестра, но не получается
Код: bool checked=false; Название: Re: Как ассоциировать файлы Отправлено: ритт от Октябрь 30, 2008, 23:07 RegOpenKeyEx...
а чем QSettings не угодил? :) Название: Re: Как ассоциировать файлы Отправлено: Hort от Октябрь 30, 2008, 23:16 пытаюсь асоциировать файлы с помощью WinAPI через реестр. QSetting работает только с 1ой определенной веткой реестра (HKEY_LOCAL_MACHINE помойму) и его возможности ограничены.
ЗЫ: всетаки какая ж головная боль этот WinAPI (все, извиняюсь за выражение, через одно место сделано) Название: Re: Как ассоциировать файлы Отправлено: ритт от Октябрь 30, 2008, 23:24 из рабочего проекта:
Код: #ifdef Q_WS_WIN Название: Re: Как ассоциировать файлы Отправлено: Hort от Октябрь 30, 2008, 23:47 В ветках реестра есть такой параметр как "значение по умолчанию" в винАПИ к нему доступ осуществляется путем передачи нулевой строки ("") а если пытаться передать в QSetting::value("") то вылетает с ошибкой
Название: Re: Как ассоциировать файлы Отправлено: Hort от Октябрь 31, 2008, 00:22 Большое спасибо Константин! после долгих мучений и листания ассистента, буквально эксперементальным путем всетаки заработало как надо. этот весь WinAPI код заменил на
Код: bool checked=false; Название: Re: Как ассоциировать файлы Отправлено: ритт от Октябрь 31, 2008, 00:33 всегда пожалуйста :)
Название: Re: Как ассоциировать файлы Отправлено: Hort от Октябрь 31, 2008, 14:01 Собственно решил написать пример реализации ассоциации через Qt. Может кому поможет.
Реализация представленна в виде флажка (QCheckBox) который и ассоциирует файлы с программой. 1. Проверяем ассоциацию, если уже связано с нашей программой - отмечаем флажок (если система отличная от Windows - опция недоступна) Код: associate=new QCheckBox; 2. Реализуем слот для ассоциации Код: void MyProg::slotAssociate(int state) Примечания: .mpf - расширение файла с которым будем связывать программу MyProg - собственно имя самой программы mpf.ico - имя значка для связанного файла, должен находится в папке с программой |