Objective c 使用CGEventSetIntegerValueField编辑键盘事件会产生错误
所以,我在这里问了另一个问题: 答案之一是使用“鼠标压力”字段(不太可能用于键盘事件)根据需要标记事件 所以,我试着:Objective c 使用CGEventSetIntegerValueField编辑键盘事件会产生错误,objective-c,macos,keyboard-hook,Objective C,Macos,Keyboard Hook,所以,我在这里问了另一个问题: 答案之一是使用“鼠标压力”字段(不太可能用于键盘事件)根据需要标记事件 所以,我试着: CGEventSetIntegerValueField(myKeyboardEvent, kCGMouseEventPressure, 0x1(进给面) 问题是: 我不知道0xFEEDFACE是什么意思。该值默认为什么?我应该把它设置成什么?我如何检查它是否由我标记 运行上述代码时会出现一个错误: :kggerrorillegalargument:CGEventSetInte
CGEventSetIntegerValueField(myKeyboardEvent,
kCGMouseEventPressure,
0x1(进给面)代码>
问题是:
我不知道0xFEEDFACE
是什么意思。该值默认为什么?我应该把它设置成什么?我如何检查它是否由我标记
运行上述代码时会出现一个错误:
:kggerrorillegalargument:CGEventSetIntegerValueField:无效事件
0xFEEDFACE
只是一个伪值。这是当你看记忆的时候,其中一个会很突出
接受三个参数:事件、a(它是enum
)和int64\t
(8字节有符号整数),其有效值范围可能取决于字段0xFEEDFACE
指示您可以尝试将任意“魔法”值放入其中,*然后在收到事件时使用检查它。如果您的事件点击收到一个包含您的“魔法数字”的新事件,那么它(几乎可以肯定)是由您发送的。否则,它是由系统发送的
总结并回答你明确的问题:这个论点没有默认任何东西;您应该传递事件系统不太可能使用的任意内容(您可能希望检查系统发送的一系列事件,以查看“真实”值的外观);其思想是,您的任意值允许您检查事件是否由您标记
至于错误,看来我错了。我认为您可以在任何类型的事件上设置任何字段(例如,在键盘事件上使用“鼠标压力”字段,因为系统几乎肯定不会设置该字段),以传递任意信息(从而识别您自己构建的事件)。然而,事件服务似乎不允许您这样做。可能还有其他领域,你可以使用,但我不确定
*我想你会明白这是一个垃圾价值;对不起