有没有办法在不使用cgEvent来模拟击键的情况下发送副本(command-c)指令?我无法访问我想要从中获取文本的应用程序中的文本字段,因此需要手动复制到剪贴板,并且似乎存在cgevent发布的错误。
根据Quartz文档,要键入大写 Z ,我应该使用:
CGEventRef event1, event2, event3, event4;
event1 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, true);
event2 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, true);
event3 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, false);
event4 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, false);
但是,如果我将这组指令附加到NSTimer,它只会在第一次触发时起作用。示例输出:
ZzzZzzzzZZzzZ (vs expected ZZZZZZZZZ).
我怎样才能将复制命令发送到活动窗口?
答案 0 :(得分:1)
您可能最好使用辅助功能API在其他应用的“修改”菜单中触发“复制”项,而不是发布原始键事件。这可能会更可靠。
答案 1 :(得分:1)
答案 2 :(得分:0)
我不确定我是否理解您的代码与应用程序代码之间的关系。你注射什么的吗?有没有理由你做不到:[[window firstResponder] copy:nil]
?
请详细说明你正在做的事情。