代码之家  ›  专栏  ›  技术社区  ›  klaaspieter

阻止CGEventCreateKeyBoardEvent已按下修改键

  •  1
  • klaaspieter  · 技术社区  · 14 年前

    我在用 CGEventCreateKeyboardEvent 创造和 CGEventPost 在Mac上发布事件。以下代码对于按“A”键非常有效。

    CGEventRef downEvent = CGEventCreateKeyboardEvent(NULL, 0, YES);
    CGEventPost(kCGHIDEventTap, downEvent);
    CFRelease(downEvent);
    

    问题在于用户可能按下了修改键。例如,当用户在发送我的键盘事件时已按下命令键时,命令+A将被发送到活动应用程序,而不仅仅是字符A。

    有办法解决这个问题吗?我能明确地说我想发布一个字符,忽略可能已经被按下的任何(修改器)键吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Peter Hosey    14 年前

    是否尝试将事件的标志设置为 0 ?