检测用户是否按下Wacom数位板上的按钮

时间:2010-09-01 20:21:59

标签: cocoa events macos-carbon tablet wacom

我想知道Cocoa / Carbon是否有可能检测到一个组合键(例如Ctrl + Z)是否来自Wacom按钮或键盘本身。

由于 最好 xonic

2 个答案:

答案 0 :(得分:1)

我只能假设Wacom数位板的驱动程序伪造了绑定到特定按钮的键盘事件。如果是这种情况,我认为你不能将它们区分为-pointingDeviceID,-tabletID和朋友只对鼠标事件有效(键盘事件 - 伪造或真实 - 不是)。

答案 1 :(得分:0)

对于“Express Keys”,Wacom使用驱动程序版本6.1 +

提供自定义事件

来自Wacom developer docs

  

WacomTabletDriver版本6.1.0提供了一组Apple事件,使应用程序可以控制平板电脑控件。平板电脑控件有三种类型:ExpressKeysTouchStripTouchRing。每个控件都有一个或多个与之关联的功能。不要假设特定平板电脑的控件数量或与控件相关的功能数量。始终使用API​​查询信息。

     

应用程序需要执行以下操作来覆盖平板电脑控件:

     
      
  1. 为感兴趣的平板电脑创建上下文。
  2.   
  3. 向分布式通知中心注册,以便从用户操作中接收被覆盖的控件数据。
  4.   
  5. 按控制类型(ExpressKeys,TouchStrip,>或TouchRing)查询控件数量。
  6.   
  7. 查询每个控件的功能数量。
  8.   
  9. 枚举函数以找出可以覆盖的函数。
  10.   
  11. 设置可用的控制功能的覆盖标志。
  12.   
  13. 处理控制数据通知以实现应用程序希望用于控制功能的功能。
  14.   
  15. 必须在应用程序终止时或应用程序完成后销毁上下文。
  16.         

    要为平板电脑创建覆盖上下文,请向平板电脑驱动程序发送类别为{kAECoreSuite, kAECreateElement}的Apple事件,其中keyAEObjectClass参与Apple事件的参数填充DescType cContextkeyAEInsertHere Param填充了平板电脑索引的对象说明符(cWTDTablet)和填充了keyASPrepositionFor的DescType的pContextTypeBlank Param。

         

    要销毁上下文,请向平板电脑驱动程序发送类别为{kAECorekAEDelete}的Apple事件,其中keyDirect Apple事件参数填充了对象说明符context(cContext)uniqueID(formUniqueID)。

大多数情况仅在文档页面的上下文中有意义,其中为Carbon和Cocoa定义了许多C结构和辅助函数。 (文档中的这个特殊部分相当远。)