Название: 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 зачем тогда эта функция существует? Не задавался этим вопросом. Ну может зарегистрировать приложение не запуская его (догадки) |