Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用CGEventSetIntegerValueField编辑键盘事件会产生错误_Objective C_Macos_Keyboard Hook - Fatal编程技术网

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
    指示您可以尝试将任意“魔法”值放入其中,*然后在收到事件时使用检查它。如果您的事件点击收到一个包含您的“魔法数字”的新事件,那么它(几乎可以肯定)是由您发送的。否则,它是由系统发送的

    总结并回答你明确的问题:这个论点没有默认任何东西;您应该传递事件系统不太可能使用的任意内容(您可能希望检查系统发送的一系列事件,以查看“真实”值的外观);其思想是,您的任意值允许您检查事件是否由您标记

    至于错误,看来我错了。我认为您可以在任何类型的事件上设置任何字段(例如,在键盘事件上使用“鼠标压力”字段,因为系统几乎肯定不会设置该字段),以传递任意信息(从而识别您自己构建的事件)。然而,事件服务似乎不允许您这样做。可能还有其他领域,你可以使用,但我不确定


    *我想你会明白这是一个垃圾价值;对不起