Вопрос по macos, cocoa, objective-c – Привязка к медиа клавишам, блокировка iTunes OS X

11

Я использовал методы, описанные здесь:http://weblog.rogueamoeba.com/2007/09/29/

и прочитайте эту ветку:Привязка к клавишам мультимедиа на клавиатурах Apple под OSX 10.5

Я переопределил класс sendEvent и могу обнаружить ввод мультимедийной клавиши. Проблема в том, что iTunes запускается при нажатии кнопки Play. Вышеупомянутый поток заявляет, что iTunes подключается к событию где-то еще (неизвестно), поэтому нет способа заблокировать его от получения события Play / Pause (F8).

В качестве обходного пути я оставляю Quicktime Player открытым без файла. Однако на Горном льве Quicktime закрывается после определенного периода бездействия, по-видимому, делая этот обходной путь нежизнеспособным.

Я знаю, что приложения, такие как Spotify и MPlayerX, смогли как-то этого добиться. Похоже, они полностью блокируют событие, а не только для iTunes.

Больше гуглил, я нашел этот Discussion.apple.com/thread/2122639?start=210&tstart=0, который отслеживает его до Демона удаленного управления, выполняющего вызовы через Applescript. Существуют некоторые обходные пути, которые удаляют разрешение на выполнение для демона rcd (требуется sudo, необходимо перезапускать каждый раз, когда обновляется OSX). nomitsu.com/contents/MMFix_src.tgz

Есть ли у кого-нибудь понимание того, как они (MPlayerX, Spotify) смогли сделать это менее хакерским способом?

Спасибо за любой совет.

Ваш Ответ

1   ответ
16

http://overooped.com/post/2593597587/mediakeys

Вау, это заняло некоторое время, чтобы найти! Надеюсь, это поможет кому-то еще!

+1 страница GitHub:SPMediaKeyTap, Спасибо, что поделился :)

Похожие вопросы