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