代码之家  ›  专栏  ›  技术社区  ›  Ben Packard Ross Knipe

在cocoa中发送“copy”命令

  •  2
  • Ben Packard Ross Knipe  · 技术社区  · 16 年前

    在不使用CGEVENT模拟击键的情况下,是否有任何方法可以发送复制(command-c)指令?我没有权限访问要从中获取文本的应用程序中的文本字段,因此需要手动复制到剪贴板,并且在cgevent posting中存在漏洞。

    根据石英文件,A型资本 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).
    

    否则,我如何向活动窗口发送复制命令?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Rob Keniger    16 年前

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

        3
  •  0
  •   Colin Barrett    16 年前

    我不确定我是否理解您的代码和应用程序代码之间的关系。你在注射什么?你不能这样做的原因是: [[window firstResponder] copy:nil] ?

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