Подтвердить что ты не робот

Добавление кнопок в панель инструментов Finder?

Dropbox имеет возможность добавить кнопку на панель инструментов Finder. Он даже появляется в окне "Настроить панель инструментов...". Я не могу найти документацию о том, как это делается. Кто-нибудь знает, как это сделать, или кто-нибудь может указать мне на какую-то документацию или образец кода?

ИЗМЕНИТЬ ОДИН:

Я предполагаю, что начало будет найти местоположение существующих значков и любой связанный код.

Я заметил, что Dropbox имеет файлы в Library/DropboxHelperTools/Dropbox_u501, называемые mach_inject_bundle_stub.bundle и FinderLoadBundle, которые могут делать магию. Dropbox также помещает значок "tick" на значки Finder. Этот код может быть задействован: github.com/rentzsch/mach_star

ИЗМЕНИТЬ ДВЕ: Разговор о Dropbox от Rian Hunter о процессе здесь, примерно в 15:30 http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-it-and-how-python-helped-4896698

В окне DropboxBundle в Dropbox_u501 отображаются значки и некоторый скомпилированный код. Код предполагает, что автор Rian Hunter: http://twitter.com/timeserena

У Rian есть своя версия кода Mach Star на его github - https://github.com/rianhunter/mach_star - это кажется намного старше

ИЗМЕНИТЬ ТРЕХ

Несколько недель назад в Стэнфорде была "Семинар по внедрению кода", в котором http://stanfordacm.com/past/ - размещен Rian. Если у кого есть заметки, пожалуйста, дайте мне знать!

4b9b3361

Ответ 1

Dropbox использовал недокументированную магию. Там официально не поддерживается способ сделать это; самое близкое, что вы можете получить без обратной инженерии, Services.

(Обновление: по состоянию на macOS 10.11, что делает Dropbox, больше не существует. System Integrity Protection теперь предотвращает ввод кода в системные процессы, такие как Finder.)

Ответ 2

Вы можете использовать Finder Sync расширение приложения (Начиная с OS X v10.10).

Расширение Finder Sync может:

  • Добавить, удалить и обновить значки и метки на элементах в контролируемой папке.
  • Отображение контекстного меню, когда пользователь Control-click элемент внутри контролируемой папки.
  • Добавить пользовательскую кнопку на панель инструментов Finders.

Ответ 3

Rian talk в PyCon 2011 (на blip.tv) не объясняет ничего больше, чем "Мы реверсировали Finder". Хотя материал mach_star ценен, он по-прежнему не объясняет, как получить значок боковой панели. И в Стэнфордском учебном семинаре "Code Injection Workshop" не было размещено никакого контента об этом методе.

У меня есть nm'd и class-dump'd оба пакета, которые Dropbox устанавливает для каждого пользователя в /Library/DropboxHelperTools, а вывод обеспечивает хорошее понимание. Если я вернусь к этому, я закончу свое исследование и опубликую его. Скорее всего, это не будет в течение некоторого времени, поэтому здесь, надеясь, что это подталкивание поможет кому-то еще.

Ответ 4

Легким промежуточным ответом, который может быть достаточно для некоторых людей, является просто создание значков, которые выглядят как кнопки.

например. Я создал "новый текстовый файл здесь" и "новые значки здесь" для моего Finder:

enter image description here

Этот метод можно найти здесь.

Недостатком является то, что они должны быть квадратными и не иметь анимаций/меню или отображаться в "настройке панели инструментов" и т.д.