Cocoa 检测用户是否按下Wacom平板电脑上的按钮

Cocoa 检测用户是否按下Wacom平板电脑上的按钮,cocoa,events,macos-carbon,tablet,wacom,Cocoa,Events,Macos Carbon,Tablet,Wacom,我想知道在Cocoa/Carbon中是否有可能检测到按键组合(例如,Ctrl+Z)是来自Wacom按钮还是键盘本身 谢谢 最好的 我只能假设Wacom平板电脑的驱动程序伪造了绑定到特定按钮的键盘事件。如果是这种情况,我认为您无法将它们区分为-pointingDeviceID、-tabletID和friends,它们仅对鼠标事件有效(键盘事件-伪造或真实-无效)。对于“快捷键”,Wacom提供了带有6.1版驱动程序的自定义事件+ 从: WacomTabletDriver版本6.1.0提供了一组Ap

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

谢谢 最好的
我只能假设Wacom平板电脑的驱动程序伪造了绑定到特定按钮的键盘事件。如果是这种情况,我认为您无法将它们区分为-pointingDeviceID、-tabletID和friends,它们仅对鼠标事件有效(键盘事件-伪造或真实-无效)。

对于“快捷键”,Wacom提供了带有6.1版驱动程序的自定义事件+

从:

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

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

  • 为感兴趣的平板电脑创建上下文
  • 向分布式通知中心注册以从用户操作接收被覆盖控件的数据
  • 按控件类型(ExpressKeys、TouchTrip、>或TouchRing)查询控件数量
  • 查询每个控件的函数数
  • 枚举函数以找出哪些函数可用于重写
  • 为可用的控制功能设置覆盖标志
  • 处理控制数据通知以实现应用程序希望的控制功能
  • 必须在应用程序终止时或应用程序结束时销毁上下文
  • 要为平板电脑创建覆盖上下文,请向平板电脑驱动程序发送一个类/类型为
    {kAECoreSuite,kAECreateElement}
    的Apple事件,其中Apple事件的
    keyAEObjectClass
    参数填充了
    cContext
    DescType
    keyaInserthere
    参数中填充了平板电脑索引的对象说明符(
    cWTDTablet
    ),而
    keyASPrepositionFor
    参数中填充了DescType的
    pContextTypeBlank

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


    其中大部分内容仅在文档页面的上下文中才有意义,其中为Carbon和Cocoa定义了大量C结构和帮助函数。(文档中的这一特定部分非常低。)

    是的,你说得对。Wacom平板电脑伪造了一个键盘事件,所以事实就是如此。但你的回答意味着也不可能区分USB键盘和macbook内置键盘的按键事件。我发现这很难相信,至少系统应该知道一个按键从哪里来,对吗?谢谢