Мне было интересно, возможно ли в Cocoa/Carbon определить, сочетается ли комбинация клавиш (например, Ctrl + Z
) с кнопкой Wacom или самой клавиатурой.Обнаруживать, если пользователь нажимает кнопку на планшете Wacom
Благодаря лучше xonic
Мне было интересно, возможно ли в Cocoa/Carbon определить, сочетается ли комбинация клавиш (например, Ctrl + Z
) с кнопкой Wacom или самой клавиатурой.Обнаруживать, если пользователь нажимает кнопку на планшете Wacom
Благодаря лучше xonic
Я могу только предположить, что драйвер планшета Wacom является фальсифицируя события клавиатуры, которые привязаны к определенным кнопкам. Если это так, я не думаю, что вы сможете отличить их как -pointingDeviceID, -tabletID, и друзья действительны только для событий мыши (что событие клавиатуры - фальшивое или реальное - нет).
Для «Экспресс-Кис», Wacom предоставляет пользовательские события с версией драйвера 6.1+
WacomTabletDriver версия 6.1.0 предоставляет набор Apple, событий, которые позволяют приложениям взять контроль над элементами управления планшетами. Существует три типа элементов управления планшетами:
ExpressKeys
,TouchStrip
иTouchRing
. Каждый элемент управления имеет одну или несколько функций, связанных с ним. Не делайте предположений о количестве элементов управления конкретного планшета или о количестве функций, связанных с элементом управления. Всегда используйте API для запроса информации.Приложение должно сделать следующее, чтобы переопределить управления планшетом:
- Создать контекст для планшета интереса.
- Зарегистрируйтесь в центре распределенных уведомлений, чтобы получать данные переопределенных элементов управления от действий пользователя.
- Запрос количества элементов управления по типу управления (ExpressKeys, TouchStrip,> или TouchRing).
- Запрос на количество функций каждого элемента управления.
- Перечислите функции, которые будут доступны для переопределения.
- Установите флаг переопределения для функции управления, которая доступна.
- Обработка уведомлений данных управления для реализации функциональных возможностей, которые приложение желает для функции управления.
- Необходимо, чтобы уничтожил контекст после завершения заявки или когда приложение выполнено с ней.
Чтобы создать контекст переопределения для планшета, отправить на 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-структур и вспомогательных функций. (Эта конкретная часть в документах довольно далека.)
Да, вы правы. Планшет Wacom подделывает событие клавиатуры, так что это действительно так. Но ваш ответ подразумевает, что также невозможно отличить keyEvents от USB-клавиатуры от клавиатуры встроенной клавиатуры на моем macbook. Мне трудно поверить, по крайней мере, система должна знать, откуда происходит ключевой штрих, верно? Спасибо! – xon1c