目标C语言 CGEventPostToPSN不工作的cgkeycode(56)



我正在尝试将键盘事件发送到进程。像"a"、"v"、"t"这样的键……工作良好,但键,如空间,命令,控制不工作。下面是我正在做的:

CGEventRef e1 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)55, YES);
CGEventRef e4 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)0, YES);
CGEventPostToPSN(&spotPSN, e1);
CGEventPostToPSN(&spotPSN, e4);

e4起作用,但e1不起作用。我在这里的目的是发送命令+a来选择所有。谢谢。

您需要将命令键设置为字母' a '的键盘事件标志,而不是为命令键发布另一个事件:

// virtual key code for letter 'a'
CGKeyCode keycode = 0;
// keyboard event for letter 'a'
CGEventRef event = CGEventCreateKeyboardEvent(NULL, keycode, true);
// modify keyboard event so that it becomes 'command-a'
CGEventSetFlags(event, kCGEventFlagMaskCommand);

有关可能的事件标志的列表,请参阅Quartz事件服务参考。

相关内容

  • 没有找到相关文章

最新更新