我想知道是否可以在 Cocoa/Carbon 中检测组合键(例如Ctrl + Z
)是否来自 Wacom 按钮或键盘本身。
谢谢最好的xonic
我想知道是否可以在 Cocoa/Carbon 中检测组合键(例如Ctrl + Z
)是否来自 Wacom 按钮或键盘本身。
谢谢最好的xonic
我只能假设 Wacom 数位板的驱动程序正在伪造绑定到特定按钮的键盘事件。如果是这种情况,我认为您无法将它们区分为 -pointingDeviceID、-tabletID 和朋友仅对鼠标事件有效(键盘事件 - 伪造的或真实的 - 不是)。
对于“Express Keys”,Wacom 使用驱动程序版本 6.1+ 提供自定义事件
来自Wacom 开发者文档:
WacomTabletDriver 6.1.0 版提供了一组 Apple 事件,使应用程序能够控制数位板控件。平板电脑控件共有三种类型:
ExpressKeys
、TouchStrip
和TouchRing
。每个控件都有一个或多个与之关联的功能。不要假设特定平板电脑的控件数量或与控件相关的功能数量。始终使用 API 来查询信息。应用程序需要执行以下操作来覆盖平板电脑控件:
- 为感兴趣的平板电脑创建上下文。
- 向分布式通知中心注册以接收来自用户操作的覆盖控件的数据。
- 按控件类型(ExpressKeys、TouchStrip、> 或 TouchRing)查询控件的数量。
- 查询每个控件的功能数量。
- 枚举函数以找出可用于覆盖的函数。
- 为可用的控制功能设置覆盖标志。
- 处理控制数据通知以实现应用程序所需的控制功能。
- 必须在应用程序终止或应用程序完成时销毁上下文。
要为平板电脑创建覆盖上下文,请向平板电脑驱动程序发送一个类/类型
{kAECoreSuite, kAECreateElement}
的keyAEObjectClass
Apple 事件,其中 Apple 事件的参数填充为DescType
ofcContext
,keyAEInsertHere
参数填充为平板电脑索引的对象说明符 (cWTDTablet
) 和keyASPrepositionFor
用 DescType 填充的参数pContextTypeBlank
。要销毁上下文,请向平板电脑驱动程序发送类/类型 {
kAECore
,kAEDelete
} 的keyDirect
Apple 事件,其中 Apple 事件参数填充上下文 (cContext
) 唯一 ID (formUniqueID
) 的对象说明符。
其中大部分仅在文档页面的上下文中才有意义,其中为 Carbon 和 Cocoa 定义了许多 C 结构和辅助函数。(文档中的这个特定部分非常落后。)