Название: Открыть проассоциированный файл - пусто в *argv[] Отправлено: negative от Декабрь 21, 2009, 16:10 Здравствуйте. Требуется открыть имеющийся файл написанной программой. В windows и linux вопрос решается получением имени файла из argv[1]. Но в макоси там пусто! Собственно вопрос - где брать имя открываемого файла под МакОсом?
Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: lit-uriy от Декабрь 21, 2009, 16:35 я думаю, в коде он берётся там же, только вот аргумент не передаётся самой программе, возможно ты не правильно что-то настроил в самой ОСьке
Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: Dendy от Декабрь 21, 2009, 16:47 QCoreApplication::applicationFilePath(). Если интересны подробности - загляните в реализацию.
Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: Igors от Декабрь 21, 2009, 16:55 Здравствуйте. Требуется открыть имеющийся файл написанной программой. В windows и linux вопрос решается получением имени файла из argv[1]. Но в макоси там пусто! Собственно вопрос - где брать имя открываемого файла под МакОсом? Там же, из argv[1] (2 и.т.п). Если пусто - то это проблемы запускающего который не подал аргументы командной строки Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: negative от Декабрь 21, 2009, 17:07 Ну так запускающий делает дабл клик по файлу, и командную строку не открывает.
Уточняю на всякий случай - запускается на сам бинарный файл, а пакет, его содержащий. Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: Igors от Декабрь 21, 2009, 17:17 Ну так запускающий делает дабл клик по файлу, и командную строку не открывает. Ясно, запускается bundle/package. Так откуда же возьмутся аргументы командной строки если их никто не давал? Ну и будет argv[0] имя самой программы (не bundle) - и все. Уточняю на всякий случай - запускается на сам бинарный файл, а пакет, его содержащий. Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: negative от Декабрь 21, 2009, 17:25 Ну так я понимаю что так не получится) А как же правильно-то сделать?)
Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: Alex Custov от Декабрь 21, 2009, 19:23 QCoreApplication::applicationFilePath(). Если интересны подробности - загляните в реализацию. Не. Автору нужен путь к файлу переданному как аргумент ком. строки, а не к бинарнику. Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: Igors от Декабрь 21, 2009, 21:15 Ну так я понимаю что так не получится) А как же правильно-то сделать?) Сделать ЧТО? :) Если Вы запускаете программу из другой - нет проблем, давайте командную строку как обычно, это работает. Если же надо пользователю дать возможность открыть файл с помощью этой программы - тогда хужее. На Mac Вам надо1) отредактировать файл info.plist (вставить туда "Document Types" которые должны пониматься). Этот файл Qt создает там же где и проект. Проще всего взять info.plist у др. программы и скопировать по образцу. После этого Вы сможете "бросать" файлы данного типа на иконку Вашего application. 2) К сожалению дропнутые файлы в командой строке не придут - вместо этого задача получит kHighLevelEvent и Вам надо пробираться садами-огородами через AppleEvent. Вот ссылочка http://doc.trolltech.com/qq/qq12-mac-events.html (http://doc.trolltech.com/qq/qq12-mac-events.html) Название: Re: Открыть проассоциированный файл - пусто в *argv[] Отправлено: negative от Декабрь 21, 2009, 22:32 Ясно, спасибо большое, ушел копать)
|