【问题标题】:Apple Events to Control Mouse Remotely用于远程控制鼠标的 Apple 事件
【发布时间】:2010-10-29 11:57:00
【问题描述】:

我什至不知道从哪里开始这个问题......

我希望能够将鼠标点击事件发送到另一台机器,就好像用户点击了那台机器一样。

我可以在同一台机器上通过:

 CGEventSourceRef source = CGEventSourceCreate(NULL);
 CGEventType eventType = kCGEventLeftMouseDragged;
 CGPoint mouseCursorPosition;
 mouseCursorPosition.x = point.x;
 mouseCursorPosition.y = point.y;
 CGMouseButton mouseButton = kCGMouseButtonLeft;

 CGEventRef mouseEvent = CGEventCreateMouseEvent ( source,
               eventType,
               mouseCursorPosition,
               mouseButton );
 CGEventSetType(mouseEvent, kCGEventLeftMouseDragged); // Fix Apple Bug
 CGEventPost( kCGSessionEventTap, mouseEvent );
 CFRelease(mouseEvent);

但是我如何将该事件发送到其他地方?苹果脚本?我已经阅读了一些关于 AppleEvents 是应用程序通信的内容,但我只想在另一台机器上生成一个系统事件?

完全不确定。

谢谢,


[编辑 11/1/10 7:30a]

澄清一下,我不希望屏幕共享。至少我不这么认为。我有几个连接在一起的 mac pro 集群,每个都有 4 个监视器。我正在尝试仅使用 1 个设备将“点击”传达给每个节点。所以如果设备在node 3之上,但是设备插入node0,node0需要告诉node 3它需要响应点击。

谢谢,


[编辑 2010 年 11 月 4 日上午 9:32]

真的吗?没有人能给我一个具体的代码示例,以编程方式生成 Apple 事件以在 C/C++/Objc-C 中在远程机器上创建鼠标事件???

【问题讨论】:

标签: cocoa events macos mouse macos-carbon


【解决方案1】:

据我了解,您可以使用 Distributed Objects 传递 Apple 事件。

他们可以通过 Bonjour 跨网络工作。您可以对 Apple 事件进行序列化或编码,然后通过网络传递它,然后在另一端的机器上运行一个帮助应用程序来监听、解码并运行它。为简单起见,您可能只想对鼠标单击的坐标进行编码。

我还相信 Marcus Zarra 在Core Data 上的书中包含在使用 DO 的网络上运行的 Core Data 应用程序的示例代码。你也许可以看到他做了什么,并做一些类似的事情来帮助你开始。另请参阅 Mike Ash 的 this excellent Q&A on DO

【讨论】:

    【解决方案2】:

    “系统事件”“应用程序”(实际上只是一个进程)允许使用 applescript 发送事件:

    tell application "System Events"
    tell process "Finder"
    click at {10, 10}
    end tell
    end tell
    

    【讨论】:

      【解决方案3】:

      我将立即回答,建议您尝试Synergy,因为这听起来像您正在寻找的东西。如果没有,因为它是开源代码,看看它可能会让你知道如何继续。

      【讨论】:

        【解决方案4】:

        这可能涉及writing a device driver 并假装是一只老鼠。

        【讨论】:

        • 真的吗?我不能使用 Apple Events 向另一台机器上的系统发送消息?
        • 可以,但是要发送鼠标事件,那就完全不同了。也许您实际上并不需要设备驱动程序,而是需要某种侦听应用程序来侦听连接,然后执行您已经想到的操作。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-17
        • 1970-01-01
        相关资源
        最近更新 更多