Russian Qt Forum

Компиляторы и платформы => Mac OS X => Тема начата: Igors от Ноябрь 07, 2020, 11:38



Название: LSSetDefaultRoleHandlerForContentType
Отправлено: Igors от Ноябрь 07, 2020, 11:38
Добрый день

Цитировать
OSStatusLSSetDefaultRoleHandlerForContentType(
   CFStringRef inContentType,
   LSRolesMask inRole,
   CFStringRef inHandlerBundleID );

С самой ф-цией все ясно, она задает какое приложение (inHandlerBundleID) откроет какой файл (inContentType). Но inHandlerBundleID - это строка (напр "com.mycompany.myapp") которая быть уникальной совсем не обязана. Это соответствует ситуации когда на машине неск версий одного приложения, и сносить все старые юзер не желает. Как задать конкретный Bundle (из которого я выполняюсь) ?

В общем, по классике
Цитировать
Функций не нашел
:)

Спасибо


Название: Re: LSSetDefaultRoleHandlerForContentType
Отправлено: kambala от Ноябрь 09, 2020, 14:09
предварительный вызов LSRegisterURL() с параметром true не помогает?


Название: Re: LSSetDefaultRoleHandlerForContentType
Отправлено: Igors от Ноябрь 09, 2020, 15:26
Пере-регистрировал всех
Цитировать
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -kill -seed -domain system -domain network -domain local -domain user
И default стал последней версией.

Как задать конкретный Bundle (из которого я выполняюсь) ?
Видимо для одинаковых bundleID - никак, это "версии", с ними OSX разбирается сам

предварительный вызов LSRegisterURL() с параметром true не помогает?
Нет, да и с какой стати, приложение регистрируется автоматом 


Название: Re: LSSetDefaultRoleHandlerForContentType
Отправлено: kambala от Ноябрь 09, 2020, 15:46
предварительный вызов LSRegisterURL() с параметром true не помогает?
Нет, да и с какой стати, приложение регистрируется автоматом 
зачем тогда эта функция существует?


Название: Re: LSSetDefaultRoleHandlerForContentType
Отправлено: Igors от Ноябрь 10, 2020, 10:58
зачем тогда эта функция существует?
Не задавался этим вопросом. Ну может зарегистрировать приложение не запуская  его (догадки)