2010-09-01 2 views

ответ

1

Я могу только предположить, что драйвер планшета Wacom является фальсифицируя события клавиатуры, которые привязаны к определенным кнопкам. Если это так, я не думаю, что вы сможете отличить их как -pointingDeviceID, -tabletID, и друзья действительны только для событий мыши (что событие клавиатуры - фальшивое или реальное - нет).

+0

Да, вы правы. Планшет Wacom подделывает событие клавиатуры, так что это действительно так. Но ваш ответ подразумевает, что также невозможно отличить keyEvents от USB-клавиатуры от клавиатуры встроенной клавиатуры на моем macbook. Мне трудно поверить, по крайней мере, система должна знать, откуда происходит ключевой штрих, верно? Спасибо! – xon1c

0

Для «Экспресс-Кис», Wacom предоставляет пользовательские события с версией драйвера 6.1+

От Wacom developer docs:

WacomTabletDriver версия 6.1.0 предоставляет набор Apple, событий, которые позволяют приложениям взять контроль над элементами управления планшетами. Существует три типа элементов управления планшетами: ExpressKeys, TouchStrip и TouchRing. Каждый элемент управления имеет одну или несколько функций, связанных с ним. Не делайте предположений о количестве элементов управления конкретного планшета или о количестве функций, связанных с элементом управления. Всегда используйте API для запроса информации.

Приложение должно сделать следующее, чтобы переопределить управления планшетом:

  1. Создать контекст для планшета интереса.
  2. Зарегистрируйтесь в центре распределенных уведомлений, чтобы получать данные переопределенных элементов управления от действий пользователя.
  3. Запрос количества элементов управления по типу управления (ExpressKeys, TouchStrip,> или TouchRing).
  4. Запрос на количество функций каждого элемента управления.
  5. Перечислите функции, которые будут доступны для переопределения.
  6. Установите флаг переопределения для функции управления, которая доступна.
  7. Обработка уведомлений данных управления для реализации функциональных возможностей, которые приложение желает для функции управления.
  8. Необходимо, чтобы уничтожил контекст после завершения заявки или когда приложение выполнено с ней.

Чтобы создать контекст переопределения для планшета, отправить на Tablet Driver яблока событий класса/типа {kAECoreSuite, kAECreateElement} с keyAEObjectClass Param от компании Apple Event, наполненной DescType из cContext, того keyAEInsertHere Param заполненного объекта спецификатор индекса планшета (cWTDTablet) и keyASPrepositionFor Параметр, заполненный дескриптором pContextTypeBlank.

Чтобы уничтожить контекст, отправить на Tablet Driver Случай Apple, класса/типа {kAECore, kAEDelete} с keyDirect компании Apple Event Parameter заполненного объекта спецификатора из данного контекста (cContext) UniqueID (formUniqueID).

Большая часть этого значения имеет смысл только в контексте страницы документации, где для C и Cocoa определены множество C-структур и вспомогательных функций. (Эта конкретная часть в документах довольно далека.)

Смежные вопросы