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 无效。我在这里的目的是发送 command+a 来选择全部。 谢谢。
I am trying to send keyboard event to a process. Seding keys like 'a', 'v' 't' ... works fine but keys such as space, command, control doesn't work. Here's what I am doing:
CGEventRef e1 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)55, YES);
CGEventRef e4 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)0, YES);
CGEventPostToPSN(&spotPSN, e1);
CGEventPostToPSN(&spotPSN, e4);
e4 works, but e1 doesn't. My purpose here is to send command+a for select all.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将命令键设置为字母“a”的键盘事件标志,而不是为命令键发布另一个事件:
有关可能的事件标志的列表,请参阅 Quartz 事件服务参考。
You need to set the command key as a flag of the keyboard event for letter ‘a’ instead of posting another event for the command key:
For a list of possible event flags, see the Quartz Event Services Reference.