2

有没有办法在不使用 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(与预期的 ZZZZZZZZZ 相比)。

我还能如何向活动窗口发送复制命令?

4

2 回答 2

1

与其发布原始键事件,不如使用辅助功能 API 来触发其他应用程序的编辑菜单中的复制项。这可能会更可靠。

于 2010-01-12T00:47:15.700 回答
0

我不确定我是否理解您的代码和应用程​​序代码之间的关系。你是打针还是什么?有没有你不能做的原因:[[window firstResponder] copy:nil]

请多描述一下你在做什么。

于 2010-01-11T20:15:37.817 回答